能力值:
( LV3,RANK:20 )
|
-
-
2 楼
你是想拦截任务管理器关闭进程,还是仅仅在退出时弹框。
如果是后者的话可以考虑用另一进程启动你的程序,然后WaitForSingleObject等待进程退出。
如果是前者的话,可以考虑挂个全局钩子拦截
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
用WaitForSingleObject的话,父进程被结束后,该进程也挂了的风险
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
驱动注册 进程创建通知回调,在进程被杀掉时系统会通知给你的驱动,驱动再做弹窗提示操作。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
PsSetCreateProcessNotifyRoutine
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
谢谢你的回复,我现在有个源码,是双线程监视进程关闭,用到了WaitForSingleObject 但是调用WaitForSingleObject后 如何恢复了 就是停止监视
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
添加等待超时参数,停止监控时设置bIsMon跳出循环,下面是伪代码
do
{
if WaitForSingleObject(hProcess, 1000) == 等待成功
break;
} while (bIsMon);
|
能力值:
( 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终止监视?
|
能力值:
( LV3,RANK:20 )
|
-
-
9 楼
不是无限等待,可以设定1000的毫秒超时,1000毫秒后如果进程还存在,则判断bIsMon,如此循环,这样可以达到终止监控的目的。
退出循环有两种可能
1.进程终止,WaitForSingleObject成功等到事件,即进程退出
2.bIsMon设置false,即终止监控
建议看下WaitForSingleObject的说明文档
|
|
|