如果采取遍历进程的办法可以检测到某个进程是否被停止,兄晌但不能检测到进程是否处于“响应”状态。所以最模尘燃终采取的方法向这个进程旦虚发送消息。然后看是否有回应的消息。如果有回应的消息说明正常,否则就认为这个进程出现问题。
Cjb = FindWindow(vbNullString, 要检测进程窗体的标题名)
Qqq = SendMessageTimeout(Cjb, WM_NULL, 0, 0, SMTO_ABORTIFHUNG And SMTO_BLOCK, 3000, lngResult)
If Qqq = 0 Then
进程不正常,停止以后再shell一次
else
进程正常
end if
进程保护一般可采用进扰迅程隐,apihook等手段,vb本身底层功能相对较弱,很难做到,如果只是不想在任务管理器中被杀,可以把窗口设为隐藏,然后把程序名改为缓毁此lsass.exe或smss.exe等,你再杀杀看.
如果要求不是太高的话,可以余毕设计成两个进程互相“保护”的形式,每一个上都用一个Timer,不断地检查另一个程序是否在运行,如没有就启动它,就是有点费资源
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)