80分求救一个铅丹问题,用vc在背后运行一个类似dos命令的exe程序 用CreateProcess()创建进程,并取得进程Handle,然后用WaitForSingleObject()等待。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的想法与楼上相同,但最好在程序中再开一个辅助线程,在辅助线程中用CreateProcess()启动dos进程,获得dos进程的Handle,然后用WaitForSingleObject()等待执行结束。如果不用辅助线程,主线程会被阻塞。if(::CreateProcess( NULL,"dosapp.exe", NULL, NULL, FALSE,NULL,NULL,NULL,&StartUpInfo, &ProcessInfo)){ WaitForSingleObject(ProcessInfo.hProcess, INFINITE); //执行到此时,dosapp.exe结束 if(ProcessInfo.hProcess) CloseHandle(ProcessInfo.hProcess); if(ProcessInfo.hThread) CloseHandle(ProcessInfo.hThread);} 嘿既然问到了,我试过可以用PIPE拿到dos进程的控制台输出。但在WIN2000下什么也拿不到,也没报错。请各位大侠多多帮忙,我的问题在〈高分求解!WIN2000下PIPE拿不到控制台输出的信息〉里,目前90分,马上再加分。 刚好我也有个类似的问题想问一下?怎样结束一个DOS程序(在98下)呢? to shylake' PIPE是何物,我用的是管道,和批处理. to han012(阿毛) if(::CreateProcess( NULL,"dosapp.exe", NULL, NULL, FALSE,NULL,NULL,NULL,&StartUpInfo, &ProcessInfo)){ WaitForSingleObject(ProcessInfo.hProcess, INFINITE); //执行到此时,dosapp.exe结束 if(ProcessInfo.hProcess) CloseHandle(ProcessInfo.hProcess); if(ProcessInfo.hThread) CloseHandle(ProcessInfo.hThread);} 开进程的时候老是出错,是不是要初始化StartUpInfo help!!!!if(::CreateProcess( NULL,"dosapp.exe", NULL, NULL, FALSE,NULL,NULL,NULL,&StartUpInfo, &ProcessInfo)){ WaitForSingleObject(ProcessInfo.hProcess, INFINITE); //执行到此时,dosapp.exe结束 if(ProcessInfo.hProcess) CloseHandle(ProcessInfo.hProcess); if(ProcessInfo.hThread) CloseHandle(ProcessInfo.hThread);} 开进程的时候老是出错,是不是要初始化StartUpInfo To qiaoyu2k(joan22):必须初始化StartUpInfo。可以简单清0 ::memset(&StartUpInfo, NULL, sizeof(StartUpInfo)); to:qiaoyu2kpipe 不就是管道?!!!有没有大侠帮忙做个例程,可以在WIN2000下用类似方法拿到控制台的输出的?200分!现在我的问题暂时只能加到103分,但我有可用分三千多呢,一定兑现!!!!!!!!我用的方法跟诸位的方法是一样的。 MFC中如何关闭一个窗体 请教一个界面上控件重绘顺序的问题! 我想定时完成一个功能,是不是单开一个线程比较好的 创建office word对象时候奇怪问题,静态链接没问题,动态链接就创建失败. 请教:注册表信息的显示问题 请帮忙改写一个搜索树的叶子结点,并统计符合条件的叶子结点的个数?请看代码 请用下面的代码试一试,再帮我看看这是为什么? 大家来讨论……,怎样在VC++或C语言中使用汇编语言?有分:) 寻求安慰 在属性页中,我用modistyle()增加最小化成功,但点击最小化时总无效,why why why 请问如何在启动机器时加载一个固定的内核驱动程序.sys? 图标问题
用CreateProcess()启动dos进程,获得dos进程的Handle,然后用WaitForSingleObject()等待执行结束。如果不用辅助线程,主线程会被阻塞。if(::CreateProcess(
NULL,"dosapp.exe",
NULL, NULL, FALSE,NULL,NULL,NULL,&StartUpInfo, &ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
//执行到此时,dosapp.exe结束
if(ProcessInfo.hProcess)
CloseHandle(ProcessInfo.hProcess);
if(ProcessInfo.hThread)
CloseHandle(ProcessInfo.hThread);
}
请各位大侠多多帮忙,我的问题在〈高分求解!WIN2000下PIPE拿不到控制台输出的信息〉里,目前90分,马上再加分。
PIPE是何物,我用的是管道,和批处理.
if(::CreateProcess(
NULL,"dosapp.exe",
NULL, NULL, FALSE,NULL,NULL,NULL,&StartUpInfo, &ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
//执行到此时,dosapp.exe结束
if(ProcessInfo.hProcess)
CloseHandle(ProcessInfo.hProcess);
if(ProcessInfo.hThread)
CloseHandle(ProcessInfo.hThread);
}
开进程的时候老是出错,是不是要初始化StartUpInfo
if(::CreateProcess(
NULL,"dosapp.exe",
NULL, NULL, FALSE,NULL,NULL,NULL,&StartUpInfo, &ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
//执行到此时,dosapp.exe结束
if(ProcessInfo.hProcess)
CloseHandle(ProcessInfo.hProcess);
if(ProcessInfo.hThread)
CloseHandle(ProcessInfo.hThread);
}
开进程的时候老是出错,是不是要初始化StartUpInfo
::memset(&StartUpInfo, NULL, sizeof(StartUpInfo));
pipe 不就是管道?!!!
有没有大侠帮忙做个例程,可以在WIN2000下用类似方法拿到控制台的输出的?200分!现在我的问题暂时只能加到103分,但我有可用分三千多呢,一定兑现!!!!!!!!
我用的方法跟诸位的方法是一样的。