進程的創建

關于創建一個進程的CreateProcess函數:
首先給出函數原型及相應解釋:

BOOL CreateProcess(
        LPCTSTR lpApplicationName,                 //可執行文件的名稱
        LPTSTR lpCommandLine,                      //要傳給新進程的命令行
        LPSECURITY_ATTRIBUTES lpProcessAttributes, //進程的安全描述符
        LPSECURITY_ATTRIBUTES lpThreadAttributes,  //線程的安全描述符
        BOOL bInheritHandles,                      //是否繼承
        DWORD dwCreationFlags,                     //表示新進程創建的方式
        LPVOID lpEnvironment,                      //環境變量
        LPCTSTR lpCurrentDirectory,                //指定工作路徑
        LPSTARTUPINFO lpStartupInfo,               //決定打開的窗體如何顯示
        LPPROCESS_INFORMATIONlpProcessInformation  //返回該新進程及其主線程的信息
    );```
> 其實就相當于在cmd里面手動打開一個PE文件

- 前兩個參數就分別是文件名和后面跟的參數(比如shutdown.exe -s -t 3600)
- 也可以只寫命令行(即第二個參數)
- 注意寫路徑的時候是\\不是\ 因為\+字母會被識別成轉義字符
- 兩個安全描述符一般都留作NULL 使用默認的參數
- 繼承看需求了 TRUE or FALSE
- dwCreationFlags:這個就相當于功能選項一樣 隨用隨查都行
- 環境變量和工作路徑NULL默認就好
- 接下來兩個結構體 需要我們手工去聲明一下

STARTUPINFO si={sizeof(si)};
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;//指定wShowWindow成員有效
si.wShowWindow = TRUE;//此成員設為TRUE的話則顯示新建進程的主窗口```
像這樣
結構體中需要去設置的再去設置 其他放著不管就行
PROCESS_INFORMATION里面還有兩個句柄 不使用的話最好關掉
如:CloseHandle(pi.hThread); CloseHandle(pi.hProcess);

函數原型什么的請見4~
初始化什么的請見4~
這里記錄的是ShellExecuteEx的正確姿勢~

打開一個應用程序或文本或網頁

    SHELLEXECUTEINFO ShellInfo; 
    memset(&ShellInfo, 0, sizeof(ShellInfo));
    ShellInfo.cbSize = sizeof(ShellInfo);
    ShellInfo.hwnd = NULL;
    ShellInfo.lpVerb = TEXT("open");
    ShellInfo.lpFile = szFilePath; // 此處寫執行文件的絕對路徑或網址
    ShellInfo.nShow = SW_SHOWNORMAL;
    ShellInfo.fMask = SEE_MASK_NOCLOSEPROCE //表示啟用hProcess記錄新進程句柄
    BOOL bResult = ShellExecuteEx(&ShellInfo);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 使用 system C標準庫中的system 函數提供了一種調用其他程序的簡單方法,利用system 函數調用程序...
    一葉之界閱讀 2,206評論 0 0
  • 進程的描述 進程控制塊PCB -- task_struct 操作系統的三大核心功能:1、進程管理2、內存管理3、文...
    _Iridescent閱讀 2,109評論 0 1
  • 安大大 + 原創作品轉載請注明出處 + 《Linux操作系統分析》MOOC課程 進程控制塊PCB——task_st...
    夏天的籃球閱讀 975評論 0 1
  • 以下模板內容參考成甲《好好學習》、紅玉姐《晚間顧》楊琪《反思模板》+結合自己的情況 所形成目前的模板,后續根據反思...
    車美美閱讀 208評論 2 1
  • 早上出門,跟男票說不想一點小問題就去請教老師,能自己摸索解決的事情盡量自己完成,不要等到真的需要老師指點的時候老師...
    Tiki喵閱讀 117評論 0 1