1

如何从 C 内部打开外部 EXE 文件?我正在尝试编写一个打开记事本和其他一些应用程序的 C 程序,但我被卡住了。感谢您忍受我的 C 菜鸟水平;p

4

2 回答 2

2

请尝试system("notepad");打开记事本可执行文件。请注意,可执行文件的路径应该是PATH变量的一部分,或者需要将完整路径提供给system调用。

于 2013-02-10T03:33:35.650 回答
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;
}
于 2013-02-10T04:11:27.360 回答