首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Windows 程式設計:啟動 EXE 程式(C++)

     編輯:關於C++

核心 API

CreateProcess(或 CreateProcessA/W)建立新程序。需填寫 STARTUPINFO 指定視窗顯示狀態。

程式碼

/* main.cpp
 * Created on: 2014.06.08
 * Author: Spike
 */
#include <iostream>
#include <windows.h>
using namespace std;

bool startProcess(const string& name) {
    STARTUPINFO si = {0};
    si.cb = sizeof(si);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_SHOW;
    PROCESS_INFORMATION pi = {0};
    if (!CreateProcess(NULL, (LPSTR)name.c_str(), NULL, NULL, FALSE,
                       0, NULL, NULL, &si, &pi)) {
        cout << "Create Error!" << endl;
        return false;
    }
    cout << "Create Success!" << endl;
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    return true;
}

int main() {
    const string name = "D:/Test/Image.exe";
    startProcess(name);
    return 0;
}

關鍵參數

  • lpApplicationName:NULL 表示命令列包含完整路徑。
  • lpCommandLine:可修改的緩衝區(故需 (LPSTR)name.c_str())。
  • bInheritHandles:FALSE 不繼承控制代碼。
  • dwCreationFlags:0 或 CREATE_NEW_CONSOLE 等。

錯誤處理

失敗時呼叫 GetLastError() 取得錯誤碼(如 ERROR_FILE_NOT_FOUND、ERROR_ACCESS_DENIED)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved