亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在C ++中調用:: CreateProcess來啟動Windows可執行文件?

如何在C ++中調用:: CreateProcess來啟動Windows可執行文件?

C++
一只名叫tom的貓 2019-12-26 10:50:43
尋找一個例子:啟動一個EXE等待EXE完成??蓤绦形募瓿珊?,正確關閉所有句柄。
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

像這樣:


STARTUPINFO info={sizeof(info)};

PROCESS_INFORMATION processInfo;

if (CreateProcess(path, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))

{

    WaitForSingleObject(processInfo.hProcess, INFINITE);

    CloseHandle(processInfo.hProcess);

    CloseHandle(processInfo.hThread);

}


查看完整回答
反對 回復 2019-12-26
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

如果您的應用程序是Windows GUI應用程序,則使用下面的代碼進行等待不是理想的選擇,因為將不會處理您應用程序的消息。對于用戶來說,您的應用程序似乎已掛起。


WaitForSingleObject(&processInfo.hProcess, INFINITE)

類似于下面未經測試的代碼可能會更好,因為它將繼續處理Windows消息隊列,并且您的應用程序將保持響應狀態:


//-- wait for the process to finish

while (true)

{

  //-- see if the task has terminated

  DWORD dwExitCode = WaitForSingleObject(ProcessInfo.hProcess, 0);


  if (   (dwExitCode == WAIT_FAILED   )

      || (dwExitCode == WAIT_OBJECT_0 )

      || (dwExitCode == WAIT_ABANDONED) )

  {

    DWORD dwExitCode;


    //-- get the process exit code

    GetExitCodeProcess(ProcessInfo.hProcess, &dwExitCode);


    //-- the task has ended so close the handle

    CloseHandle(ProcessInfo.hThread);

    CloseHandle(ProcessInfo.hProcess);


    //-- save the exit code

    lExitCode = dwExitCode;


    return;

  }

  else

  {

    //-- see if there are any message that need to be processed

    while (PeekMessage(&message.msg, 0, 0, 0, PM_NOREMOVE))

    {

      if (message.msg.message == WM_QUIT)

      {

        return;

      }


      //-- process the message queue

      if (GetMessage(&message.msg, 0, 0, 0))

      {

        //-- process the message

        TranslateMessage(&pMessage->msg);

        DispatchMessage(&pMessage->msg);

      }

    }

  }

}


查看完整回答
反對 回復 2019-12-26
  • 3 回答
  • 0 關注
  • 763 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號