(1) system()

函數名: system 
功 能: 發出一個DOS命令 
用 法: 
int system(char *command); 
備 注: system函數已經被收錄在標準c庫中,可以直接調用 
返回值
  
=-1:出現錯誤 
  
=0:調用成功但是沒有出現子進程 
  
>0:成功退出的子進程的id
樣例: 
system(
"D:\\game.exe");

int system(
   
const char *command 
);
int _wsystem(
   
const wchar_t *command 
);



(
2) WinExec()
函數原型:
UINT WINAPI WinExec(
  __in          LPCSTR lpCmdLine,
  __in          UINT uCmdShow
);


參數說明:
  lpCmdLine,  
// 命令路徑
  uCmdShow,  // 顯示方式,共有11種,具體可以查閱MSDN的ShowWindow函數

返回值:
  成功,返回值大于31
  返回0表示內存或者資源溢出
  返回ERROR_BAD_FORMAT表示exe文件非法或者已損壞。
  返回ERROR_FILE_NOT_FOUND指定的文件沒有找到。
  返回ERROR_PATH_NOT_FOUND找不到指定路徑
樣例:
  WinExec(
"Notepad.exe", SW_SHOW); // 打開記事本
  WinExec("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打開Test.exe(注意文件名的大小寫也必須完全一樣)


(
3) ShellExecute()
函數原型:   

HINSTANCE ShellExecute(          
    HWND hwnd,
    LPCTSTR lpOperation,
    LPCTSTR lpFile,
    LPCTSTR lpParameters,
    LPCTSTR lpDirectory,
    INT nShowCmd
);

用例: ShellExecute(NULL,
"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL); //打開C:\Test.txt 文件        



(
4) CreateProcess() 

函數原型:

BOOL CreateProcess(
    LPCTSTR lpApplicationName, 
//執行程序名
    LPTSTR lpCommandLine, // 參數行
    
//下面兩個參數描述了所創建的進程和線程的安全屬性,如果為NULL則使用默認的安全屬性
    LPSECURITY_ATTRIBUTES lpProcessAttributes, //進程安全屬性
    LPSECURITY_ATTRIBUTES lpThreadAttributes,    // 線程安全屬性
    BOOL bInheritHandles, // 繼承標志
    DWORD dwCreationFlags, // 創建標志
    LPVOID lpEnvironment, // 環境變量
    LPCTSTR lpCurrentDirectory,   // 運行該進程的初始目錄
    LPSTARTUPINFO lpStartupInfo, // 用于在創建子進程時設置各種屬性
    LPPROCESS_INFORMATION lpProcessInformation //用于在進程創建后接受相關信息
  ); 

評論:
system(),主要用在DOS環境下.
WinExec(),簡單實用,方便打開執行進程,但不能操作控制進程。
ShellExecute(),增強了操作能力,但對進程的控制還是不夠用。
CreateProcess(),
目前最強勁的進程函數,通過設置StartupInfo結構體參數,來設置子進程的屬性,子進程創建后的信息也保存在ProcessInformation結構體中,便于操作,功能強大,但參數過多.