在使用 winapi 在 ac 程序中完成操作后,我试图向用户显示一个文本文件,但我希望使用记事本(或默认文本处理器应用程序)打开该文件。如何使用 winapi 执行此操作(使用窗口的默认应用程序打开文本文件)?
问问题
6416 次
2 回答
7
ShellExecute()
是您正在寻找的,例如:
#include <shellapi.h>
ShellExecute(NULL, NULL, "C:\\path\\to\\myfile.txt", NULL, NULL, SW_SHOWNORMAL);
于 2013-07-02T05:41:07.287 回答
2
给定一个文件test.txt
,你可以notepad
在 Windows 上显示它:
#include <stdlib.h>
int main () {
system ("notepad test.txt");
return 0;
}
如果您可以确定您的程序将默认使用cmd
shell,您可以说system ("test.txt")
,文件将在任何设置为默认值的文本编辑器中打开,但指定编辑器更安全,因为它处理诸如在下编译的程序之类的情况Cygwin,默认的 shell 将是sh
,当您在命令提示符处提供文件名时,默认情况下它不会打开文本文件。
如果您不能确定您的程序将始终在 Windows 上编译,那么我会支持ShellExecute()
@Remy Lebeau 概述的解决方案。包含#include <shellapi.h>
和调用的程序ShellExecute()
将无法在非 Windows 系统上编译(从而预先排除错误),而我的解决方案将在非 Windows 系统上编译,但在运行时system()
调用时会失败。
于 2013-07-02T05:17:20.480 回答