天天看點

建立程序(CreateProcess)

下面來分享一下如何用C++建立程序(開發環境建議VS2017【宇宙第一IDE】)

/*以下為建立新的程序,以拉起記事本為例*/
#include <windows.h> 
#include <iostream>
using namespace std;
int main()
{
 char TEST[] = "notepad.exe";   //設定指令行 
 STARTUPINFO si = { sizeof(si) };  //startupinfo 結構體初始化
 PROCESS_INFORMATION pi;     //process_infomation
 
 si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成員有效
 si.wShowWindow = TRUE;   // 此成員設為TRUE的話則顯示建立程序的主視窗,
         // 為FALSE的話則不顯示
 BOOL bRet = ::CreateProcess(
  NULL,   // 不在此指定可執行檔案的檔案名
  TEST,         // 指令行參數 
  NULL,   // 預設程序安全性
  NULL,   // 預設線程安全性
  FALSE,   // 指定目前程序内的句柄不可以被子程序繼承
  CREATE_NEW_CONSOLE, // 為新程序建立一個新的控制台視窗
  NULL,   // 使用本程序的環境變量
  NULL,   // 使用本程序的驅動器和目錄
  &si,
  &pi);
 if (bRet)
 {
  // 既然我們不使用兩個句柄,最好是立刻将它們關閉
  ::CloseHandle(pi.hThread);     //結束新建立主線程句柄
  ::CloseHandle(pi.hProcess);    //結束新建立主程序句柄
  cout << " 新程序的程序ID号:" << pi.dwProcessId << endl;   //dwprocessid:建立程序ID
  cout << " 新程序的主線程ID号:"<<pi.dwThreadId<<endl;   //dwthreadid: 建立主線程ID
 }
 system("pause");
 return 0;
}
           

繼續閱讀