首页
社区
课程
招聘
[求助]如何在进程结束时弹出窗口
发表于: 2015-4-13 22:45 4895

[求助]如何在进程结束时弹出窗口

2015-4-13 22:45
4895
我有一款很好的软件,希望在任务管理器中结束该进程的时候,弹出窗口,有什么办法达到上面的要求吗?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 2775
活跃值: (1122)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
你是想拦截任务管理器关闭进程,还是仅仅在退出时弹框。
如果是后者的话可以考虑用另一进程启动你的程序,然后WaitForSingleObject等待进程退出。
如果是前者的话,可以考虑挂个全局钩子拦截
2015-4-14 09:22
0
雪    币: 122
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用WaitForSingleObject的话,父进程被结束后,该进程也挂了的风险
2015-4-14 11:05
0
雪    币: 362
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
驱动注册 进程创建通知回调,在进程被杀掉时系统会通知给你的驱动,驱动再做弹窗提示操作。
2015-4-14 12:34
0
雪    币: 362
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
PsSetCreateProcessNotifyRoutine
2015-4-14 12:36
0
雪    币: 193
活跃值: (862)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
谢谢你的回复,我现在有个源码,是双线程监视进程关闭,用到了WaitForSingleObject 但是调用WaitForSingleObject后 如何恢复了 就是停止监视
2015-4-14 12:57
0
雪    币: 2775
活跃值: (1122)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
添加等待超时参数,停止监控时设置bIsMon跳出循环,下面是伪代码
	do 
	{
		if WaitForSingleObject(hProcess, 1000) == 等待成功
			break;
	} while (bIsMon);
2015-4-14 13:27
0
雪    币: 193
活跃值: (862)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=xhbuming;1365108]添加等待超时参数,停止监控时设置bIsMon跳出循环,下面是伪代码
	do 
	{
		if WaitForSingleObject(hProcess, 1000) == 等待成功
			break;
	} while (bIsMon);
[/QUOTE]

我之前用的是WaitForSingleObject(hProcess, -1)无限等待,只需设置变量bIsMon就可以了吗?
	do 
	{
		WaitForSingleObject(hProcess, -1) 
	} while (bIsMon);
有没直接的API终止监视?
2015-4-14 14:01
0
雪    币: 2775
活跃值: (1122)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
不是无限等待,可以设定1000的毫秒超时,1000毫秒后如果进程还存在,则判断bIsMon,如此循环,这样可以达到终止监控的目的。
退出循环有两种可能
1.进程终止,WaitForSingleObject成功等到事件,即进程退出
2.bIsMon设置false,即终止监控

建议看下WaitForSingleObject的说明文档
2015-4-14 14:21
0
游客
登录 | 注册 方可回帖
返回
//