我在这里遗漏了一些明显的东西。我正在使用 DJGPP C 编译器。我可以成功打开可执行文件,但不能打开其默认程序中的文件。
#include <stdio.h>
int main(void) {
char sys_cmd[100] = "C:\\WINDOWS\\system32\\Calc.exe";
system(sys_cmd);
system("\"C:\\TextFile.txt\"");
system("\"www.bbc.co.uk\"");
getch();
return 0;
}
运行此代码会导致计算器启动。关闭计算器后,它会报告:
Bad command of file name
Bad command of file name
所以其他两个系统调用存在问题。我尝试将“START”添加到系统调用中,但这并不能解决问题。刚刚搜索了我的 Windows 7 Pro 系统,它没有 START.EXE。添加“cmd.exe”只是启动cmd,所以就好像没有发送任何参数一样。
我可以正常在cmd中输入“C:\TextFile.txt”,它会打开notepad.exe,里面有TextFile.txt。
理想情况下,无论如何我都会使用比 system() 更安全的东西来执行此操作,但我还没有在 DJGPP 中看到任何 ShellExecute 示例。