[英]system() to c++ without calling cmd.exe
我相信您必須改用CreateProcess 。
我必須說,現有答案並不是特別描述性的。 這是一種無需新cmd.exe
窗口即可執行命令的方法。
基於Roland Rabien和MSDN 的回答 ,我編寫了一個工作函數:
int windows_system(const char *cmd)
{
PROCESS_INFORMATION p_info;
STARTUPINFO s_info;
LPSTR cmdline, programpath;
memset(&s_info, 0, sizeof(s_info));
memset(&p_info, 0, sizeof(p_info));
s_info.cb = sizeof(s_info);
cmdline = _tcsdup(TEXT(cmd));
programpath = _tcsdup(TEXT(cmd));
if (CreateProcess(programpath, cmdline, NULL, NULL, 0, 0, NULL, NULL, &s_info, &p_info))
{
WaitForSingleObject(p_info.hProcess, INFINITE);
CloseHandle(p_info.hProcess);
CloseHandle(p_info.hThread);
}
}
在所有Windows平台上均可使用。 就像調用system()
一樣進行調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.