如何在C中打开外部EXE文件?

时间:2013-02-10 03:25:37

标签: c windows exe

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

2 个答案:

答案 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;
}