[英]How to open a text file in notepad in a C program?
我正在尝试使用winapi在ac程序中完成操作后向用户显示一个文本文件,但我希望使用记事本(或默认的文本处理器应用程序)打开该文件。 如何使用winapi做到这一点(使用窗口的默认应用程序打开文本文件)?
您正在寻找ShellExecute()
,例如:
#include <shellapi.h>
ShellExecute(NULL, NULL, "C:\\path\\to\\myfile.txt", NULL, NULL, SW_SHOWNORMAL);
给定文件test.txt
,您可以使用以下命令在Windows的notepad
显示该文件:
#include <stdlib.h>
int main () {
system ("notepad test.txt");
return 0;
}
如果可以确定程序默认为cmd
shell,则可以说system ("test.txt")
,并且文件将在设置为默认文本编辑器的任何一个中打开,但是指定该编辑器更为安全,因为它处理诸如Cygwin下正在编译的程序的情况,其中默认外壳程序为sh
,当您在命令提示符下提供文件名时,默认情况下不会打开文本文件。
如果不能确定您的程序将始终在Windows上编译,那么我将推荐@Remy Lebeau概述的ShellExecute()
解决方案。 包含#include <shellapi.h>
和对ShellExecute()
的调用将无法在非Windows系统上编译(从而抢占错误),而我的解决方案将在非Windows系统上编译,但在在system()
调用时运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.