QT Gui介面呼叫cmd程式

2021-09-04 12:04:13 字數 1401 閱讀 6932

1、用qprocess呼叫沒有視窗顯示

但是任務管理欄裡有程序在

2、通過system呼叫

qstring qstrrexepath("c:/run/test.exe");

qstring qstrworkpath("c:/run");

qstring str = "cd " + qstrworkpath + " & " + qstrrexepath;

system(str.tostdstring().c_str());

能彈出視窗,但是控制台程序依賴與gui程序存在而存在,做不到啟動控制台程序後,主程式把自己強殺掉

3、通過win32api函式createprocess用來建立乙個新的程序

注意引數

(1)si.wshowwindow = sw_shownormal;

(2)create_new_console | create_new_process_group

(3)// 無限期等待執行緒執行完畢  

// 主線程被掛起  

//waitforsingleobject(pi.hprocess, infinite);

static dword createindependentprocessshowwindows(char const *strprocess)

; process_information pi = ;

si.cb = sizeof(startupinfo);

si.dwflags = startf_useshowwindow;

si.wshowwindow = sw_shownormal;

int iret = 0;

bool bret = createprocess(

null,

(lpwstr)wstrcmdcopy.c_str(),

null,

null,

false,

create_new_console | create_new_process_group,

null,

null,

&si,

&pi);

if (bret == false)

closehandle(pi.hthread);

// 無限期等待執行緒執行完畢

// 主線程被掛起

//waitforsingleobject(pi.hprocess, infinite);

dword dwexitcode;

getexitcodeprocess(pi.hprocess, &dwexitcode);

closehandle(pi.hprocess);

return dwexitcode;

};};

話題:

Winform程式中呼叫cmd命令

messagebox.show command命令 output catch exception a 上面注釋掉的幾行,網上有說呼叫的時候是需要機器的使用者名稱和密碼的,但是經測試,不用也可以。ps 遇到的乙個問題,若將上面的視窗顯示設為false process.startinfo.createn...

C 程式呼叫cmd執行命令

string str console.readline 手動輸入 string str ipconfig 直接向cmd裡傳入的命令 system.diagnostics.process p new system.diagnostics.process p.startinfo.filename cmd...

C 程式呼叫cmd執行命令

酷小孩 原文 c 程式呼叫cmd執行命令 string str console.readline system.diagnostics.process p new system.diagnostics.process p.startinfo.filename cmd.exe p.startinfo....