如何在C程序中打开记事本中的文本文件?

时间:2013-07-02 05:00:09

标签: c winapi

我试图在使用winapi在c程序中完成操作后向用户显示文本文件,但我希望使用记事本(或默认文本处理器应用程序)打开文件。我该怎么做(使用窗口的默认应用程序打开文本文件)使用winapi?

2 个答案:

答案 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()调用时将失败。