C 呼叫外部exe, 並傳參獲取返回值

2021-10-09 07:26:19 字數 1996 閱讀 1067

c++呼叫使用createprocess函式呼叫外部exe傳參並獲取其執行結果。

msdn官方位址介紹

bool createprocess(

lpcwstr pszimagename, // an exe file.

lpcwstr pszcmdline, // parameter for your exe file.

lpsecurity_attributes psaprocess, //process handle not inheritable.

lpsecurity_attributes psathread, // thread handle not inheritable.

bool finherithandles, // set handle inheritance.

dword fdwcreate,

lpvoid pvenvironment,

lpwstr pszcurdir,

lpstartupinfow psistartinfo,

lpprocess_information pprocinfo

);

int32_t

zipfile

(const std::string& filename,

const std::string& target)

;wcscpy_s

(msg,

wcslen

(stringtowstring

(cmdline)

.c_str()

)+1,

stringtowstring

(cmdline)

.c_str()

);// start the child process.建立子程序 if(

!createprocess

(l"7z.exe"

,// an exe file.

msg,

// parameter for your exe file.

null

,// process handle not inheritable.

null

,// thread handle not inheritable.

false,

// set handle inheritance to false. 0,

// no creation flags.

null

,// use parent's environment block.

null

,// use parent's starting directory.

// 傳null預設為使用父目錄啟動子程序,如要改變子程序執行目錄可以傳相應路徑

&si,

// pointer to startupinfo structure.

&pi)

// pointer to process_information structure.

)// wait until child process exits. 等待子程序執行結束返回

waitforsingleobject

(pi.hprocess, infinite)

;getexitcodeprocess

(pi.hprocess,

&dwexitcode)

;// close process and thread handles.

closehandle

(pi.hprocess)

;closehandle

(pi.hthread);if

(0!= dwexitcode)

return myresult::zip_file_error;

return myresult::seccess;

}

C 呼叫外部exe程式,並隱藏窗體

使用process類,c 可以很方便地呼叫第三方exe,並可以自由地控制是否顯示窗體 如何顯示窗體 實現輸入輸出重定向。在使用之前,須先包含乙個命名空間 using system.diagnostics process mypro new process mypro.startinfo.filena...

c 呼叫外部exe程式

c 呼叫外部exe程式,首先要 using system.diagnostics 然後開啟乙個新process system.diagnostics.processstartinfo p null system.diagnostics.process proc p new processstarti...

C 獲取外部exe程式的返回值

在自己的c 控制台程式裡呼叫外部的7za.exe命令列工具,需要得到7za的返回值,以確定解壓縮是否成功。7 zip 返回以下退出 含義 0 沒有錯誤 1 警告 非嚴重錯誤 比如乙個或多個檔案被其他程式鎖定,它們將不會被壓縮。2 嚴重錯誤。7 命令列錯誤。8 操作所需要的記憶體不足。255 使用者中...