我试图在使用winapi在c程序中完成操作后向用户显示文本文件,但我希望使用记事本(或默认文本处理器应用程序)打开文件。我该怎么做(使用窗口的默认应用程序打开文本文件)使用winapi?
答案 0 :(得分:7)
ShellExecute()
正是您所寻找的,例如:
#include <shellapi.h>
ShellExecute(NULL, NULL, "C:\\path\\to\\myfile.txt", NULL, NULL, SW_SHOWNORMAL);
答案 1 :(得分:1)
如果文件为test.txt
,您可以在Windows上的notepad
中显示它:
#include <stdlib.h>
int main () {
system ("notepad test.txt");
return 0;
}
如果你可以确定你的程序默认使用cmd
shell,你可以说system ("test.txt")
,文件将在默认设置的文本编辑器中打开,但指定编辑器更安全,因为它处理类似于在Cygwin下编译的程序的情况,其中默认shell将是sh
,当您在命令提示符处提供文件名时,默认情况下不会打开文本文件。
如果您无法确定您的程序是否始终在Windows上编译,那么我会赞成@Remy Lebeau概述的ShellExecute()
解决方案。包含#include <shellapi.h>
和调用ShellExecute()
的程序将无法在非Windows系统上进行编译(从而预先排除错误),而我的解决方案将编译为非-Windows系统但在运行期间system()
调用时将失败。