程序之间通信 在主程序启动另外的exe程序,在这个exe结束的时候通知主程序,然后主程序再启动另一个程序。怎么实现?通过进程通信?还有其他的思路不?请教各位 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 消息copydata剪贴板共享内存管道socket差不多齐了,结贴~ 还有邮件槽CreateMailslot 楼上都列了不少的进程通信方法针对你说的问题,用同步最方便STARTUPINFO StartupInfo = {0}; PROCESS_INFORMATION ProcessInfo; bool ret2=CreateProcess("c:\\windows\\system32\\notepad.exe",NULL,NULL,NULL,FALSE, CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&StartupInfo,&ProcessInfo); OutputDebugString("before WaitForSingleObject"); WaitForSingleObject(ProcessInfo.hProcess,-1); OutputDebugString("after WaitForSingleObject"); 如果另外的exe不是你写的,不好修改它的话,还可以:主程序里启动另外的exe时保存它的PID然后OpenProcess的到它的句柄hProcess然后主程序开个线程WaitForSingleObject等它结束 获取该进程句柄,启动一线程用Wait函数等待该进程,返回则通知主窗体该进程结束 另外一个exe的名字你应该知道吧,在主程序里记录他的名字XXX.exe主程序每隔MS扫描一次进程,如果XXX.exe不存在,则XXX.exe已经结束,则启动另外一exe注:扫描进程速度是非常快的,几乎不占什么资源,此法可解,也可以解决另外那个exe不是你写的情况 创建进程,并等待进程结束信号STARTUPINFO StartupInfo = {0}; PROCESS_INFORMATION ProcessInfo; bool ret2=CreateProcess("c:\\windows\\system32\\notepad.exe",NULL,NULL,NULL,FALSE, CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&StartupInfo,&ProcessInfo); OutputDebugString("before WaitForSingleObject"); WaitForSingleObject(ProcessInfo.hProcess,-1); OutputDebugString("after WaitForSingleObject"); 64位win7下 调用键盘的问题 HOOK拦截关机消息 win32程序中如何将CBitmap用作鼠标光标? 急,急....有关AVI文件音频播放的问题! 问一个有关运算符重载的问题 困惑困惑!!!! 请教XML读出错的问题 如何将COleSafeArray转换为二维的BYTE数组? 再问一个小问题WM_INITDILALOG和WM_COMMAND是什么意思?都是怎么用? 我在Activex 控件中调用 CMSComm 类的方法时出错 想问下VC高手,如和向一个程序中添加功能? 加星,散分,晚上结(3)
copydata
剪贴板
共享内存
管道
socket
差不多齐了,结贴~
还有邮件槽CreateMailslot
针对你说的问题,用同步最方便
STARTUPINFO StartupInfo = {0};
PROCESS_INFORMATION ProcessInfo;
bool ret2=CreateProcess("c:\\windows\\system32\\notepad.exe",NULL,NULL,NULL,FALSE,
CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&StartupInfo,&ProcessInfo);
OutputDebugString("before WaitForSingleObject");
WaitForSingleObject(ProcessInfo.hProcess,-1);
OutputDebugString("after WaitForSingleObject");
然后OpenProcess的到它的句柄hProcess
然后主程序开个线程WaitForSingleObject等它结束
主程序每隔MS扫描一次进程,如果XXX.exe不存在,则XXX.exe已经结束,则启动另外一exe注:扫描进程速度是非常快的,几乎不占什么资源,此法可解,也可以解决另外那个exe不是你写的情况
创建进程,并等待进程结束信号
STARTUPINFO StartupInfo = {0};
PROCESS_INFORMATION ProcessInfo;
bool ret2=CreateProcess("c:\\windows\\system32\\notepad.exe",NULL,NULL,NULL,FALSE,
CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&StartupInfo,&ProcessInfo);
OutputDebugString("before WaitForSingleObject");
WaitForSingleObject(ProcessInfo.hProcess,-1);
OutputDebugString("after WaitForSingleObject");