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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM