我想使用CreateProcess()在MFC按钮上运行python脚本文件,以便使用管道实时捕获进程的输出。你知道吗
CString sCmd = "Cmd.Exe";
CString sParms = " /c python.exe C:\\WinApp\\Debug\\printx.py";
BOOL fRet = ExecAndProcessOutput(sCmd, sParms);
BOOL ExecAndProcessOutput(LPCSTR szCmd, LPCSTR szParms)
{
SECURITY_ATTRIBUTES rSA = { 0 };
rSA.nLength = sizeof(SECURITY_ATTRIBUTES);
rSA.bInheritHandle = TRUE;
HANDLE hReadPipe, hWritePipe;
CreatePipe(&hReadPipe, &hWritePipe, &rSA, 25000);
PROCESS_INFORMATION rPI = { 0 };
STARTUPINFO rSI = { 0 };
rSI.cb = sizeof(rSI);
rSI.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
rSI.wShowWindow = SW_SHOWNORMAL;// SW_HIDE; // or SW_SHOWNORMAL or SW_MINIMIZE
rSI.hStdOutput = hWritePipe;
rSI.hStdError = hWritePipe;
CString sCmd;
sCmd.Format("\"%s\" %s", (LPCSTR)szCmd, (LPCSTR)szParms);
BOOL fRet = CreateProcess(NULL, (LPSTR)(LPCSTR)sCmd, NULL,NULL, TRUE, 0, 0, 0, &rSI, &rPI);
if (!fRet)
{
return(FALSE);
}
}
总之,将参数传递给Createprocess的第二个参数是:
"Cmd.Exe" /c python.exe C:\WinApp\Debug\printx.py
由于某些原因,当我运行这个代码createprocess时,我没有得到任何错误作为返回参数。但是python文件名为-打印x.py没有跑。你知道吗
感谢你在这方面的帮助。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐