1. 程式人生 > >VC++ 使用CreateProcess建立新程序

VC++ 使用CreateProcess建立新程序

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