如何从C内部打开外部EXE文件?我正在尝试编写一个打开记事本的C程序,以及其他一些应用程序,我被卡住了。 感谢你忍受我的菜鸟级别的C; p
答案 0 :(得分:2)
请尝试system("notepad");
,这将打开记事本可执行文件。请注意,可执行文件的路径应该是PATH
变量的一部分,或者需要为system
调用提供完整路径。
答案 1 :(得分:0)
CreateProcess或ShellExecute是Windows启动另一个进程的方式。您需要#include才能看到他们的定义
#include <windows.h>
int main()
{
STARTUPINFOW siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
if (CreateProcessW(L"C:\\Windows\\system32\\notepad.exe"),
NULL, NULL, NULL, FALSE,
0, NULL, NULL,
&siStartupInfo, &piProcessInfo))
{
/* This line waits for the process to finish. */
/* You can omit it to keep going whilst the other process runs */
dwExitCode = WaitForSingleObject(piProcessInfo.hProcess, (SecondsToWait * 1000));
}
else
{
/* CreateProcess failed */
iReturnVal = GetLastError();
}
return 0;
}