博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CreateProcess参数传递
阅读量:6850 次
发布时间:2019-06-26

本文共 1462 字,大约阅读时间需要 4 分钟。

参数传递是很奇怪,有时候会无法启动,比如:

CreateProcess("c:\\a.exe","aa bb cc",....),显示出错

通过CreateProcess("c:\\a.exe", "\"c:\\a.exe\" c:\\a.exe aa bb cc"...)即可.

 

HANDLE hRead,hWrite; SECURITY_ATTRIBUTES sa; sa.nLength=sizeof(SECURITY_ATTRIBUTES); sa.bInheritHandle=true; sa.lpSecurityDescriptor=NULL; if(!::CreatePipe(&hRead,&hWrite,&sa,0)) { AfxMessageBox("CreatePipe failed!"); return false; } STARTUPINFO si; si.cb=sizeof(STARTUPINFO); GetStartupInfo(&si);  si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES; si.wShowWindow=SW_HIDE;//这里设置是否显示DOS窗口 si.hStdError=hWrite; si.hStdOutput=hWrite; si.hStdInput=GetStdHandle(STD_INPUT_HANDLE); PROCESS_INFORMATION pi; LPSTR lpszCmdLine="cmd sname ...";//这里你自己修改吧。 if(!CreateProcess(NULL,lpszCmdLine,NULL,NULL,TRUE,0,NULL,0,&si,&pi)) { AfxMessageBox("CreateProcess failed!"); CloseHandle(hRead); CloseHandle(hWrite); return false; } CloseHandle(hWrite); if(WaitForSingleObject(pi.hProcess,5000)==WAIT_TIMEOUT) { AfxMessageBox("Timeout!"); TerminateThread(pi.hThread,1); TerminateProcess(pi.hProcess,1); CloseHandle(hRead); return false; } char buf[4096]={
0}; DWORD bytes; if(::ReadFile(hRead,buf,4095,&bytes,NULL)==NULL)//读取程序输出 { AfxMessageBox("ReadFile Failed!"); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); CloseHandle(hRead); return false; } else { Result=buf; } CloseHandle(pi.hThread); CloseHandle(pi.hProcess); CloseHandle(hRead); return true;用CreateProcess创建进程,用管道读取程序输出。用GetExitCodeProcess读取程序退出代码

另外参考:

 

 

 

 

 

 

转载地址:http://izrul.baihongyu.com/

你可能感兴趣的文章
python3的zip函数
查看>>
《Git权威指南》读书笔记 第四章 git初始化
查看>>
《Head first HTML与CSS 第二版》读书笔记 第九章 盒模型
查看>>
《Python面向对象……》之目录
查看>>
集群入门简析及LB下LVS详解
查看>>
Linux与GPT
查看>>
管理或技术
查看>>
分配到弱属性;对象将在赋值之后释放
查看>>
java作用域public ,private ,protected 及不写时的区别
查看>>
until循环语句
查看>>
Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
查看>>
提高用户体验方式:饥饿营销
查看>>
Java8中的LocalDateTime工具类
查看>>
Exchange 2013 PowerShell创建自定义对象
查看>>
RAID-10 阵列的创建(软)
查看>>
javaScript的调试(四)
查看>>
nginx不使用正则表达式匹配
查看>>
利用putty进行vnc + ssh tunneling登录
查看>>
js重定向---实现页面跳转的几种方式
查看>>
hadoop1.x作业提交过程分析(源码分析第二篇)
查看>>