2013-02-10 99 views
1

如何從C中打開外部EXE文件?我正在嘗試編寫一個打開記事本的C程序,以及其他一些應用程序,並且我被卡住了。 感謝您支持我的noob級別的C; p如何在C中打開外部EXE文件?

+0

您可能想要查看使_exec或類似的win32 API調用。 – forTruce 2013-02-10 03:29:49

+0

http://pubs.opengroup.org/onlinepubs/009604499/functions/exec.html – technosaurus 2013-02-10 04:17:04

回答

2

請嘗試system("notepad");這將打開記事本可執行文件。請注意,可執行文件的路徑應該是PATH變量的一部分,或者需要將全路徑提供給system調用。

+0

這似乎不工作..我錯過了一個庫或什麼? – Leetfail 2013-02-10 03:38:10

+1

你可以請嘗試包括這個頭文件'#include '? – Ganesh 2013-02-10 03:40:25

+0

它默認在那裏。 – Leetfail 2013-02-10 03:41:33

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