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 使用者中...