VC++ 使用CreateProcess建立新程序
阿新 • • 發佈:2018-12-03
https://www.cnblogs.com/fancing/p/6477918.html
#include <windows.h> #include <tchar.h> #include <stdio.h> int main(int argc, char* argv[]) { TCHAR szCommandLine[] = TEXT("NOTEPAD");//或者WCHAR //LPWSTR szCommandLine = TEXT("NOTEPAD");//錯誤 //STARTUPINFO si = { sizeof(si) };STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成員有效 si.wShowWindow = TRUE; // 此成員設為TRUE的話則顯示新建程序的主視窗,// 為FALSE的話則不顯示 BOOL bRet = ::CreateProcess ( NULL, // 不在此指定可執行檔案的檔名 szCommandLine, // 命令列引數 NULL, // 預設程序安全性 NULL, // 預設執行緒安全性 FALSE, // 指定當前程序內的控制代碼不可以被子程序繼承 CREATE_NEW_CONSOLE, // 為新程序建立一個新的控制檯視窗 NULL, //使用本程序的環境變數 NULL, // 使用本程序的驅動器和目錄 &si, &pi); if(bRet) { // 既然我們不使用兩個控制代碼,最好是立刻將它們關閉 ::CloseHandle (pi.hThread); ::CloseHandle (pi.hProcess); } return 0; }