前几天一直想写一个恶搞的程序,怎么也禁止不掉任务管理器的调用。开始做了一个低级的键盘钩子,即使把所有的键盘键都给戒掉,那三个键仍然无法禁止。然后又想改注册表,但是好不方便,最后想了一个巧办法,设一个timer,每隔一段时间调用这个timer来关掉任务管理器。上代码,其实很简单,就是用得到进程ID的方法得到任务管理器的进程就得了。
.if eax == WM_TIMER ;找到任务管理器的窗口句柄 ;注意:一个函数中不能调用两次eax,否则会重写 invoke FindWindow, NULL, addr sztaskmgr mov IdTaskProcess, eax invoke GetWindowThreadProcessId, IdTaskProcess, addr @processId invoke OpenProcess, PROCESS_TERMINATE, FALSE, @processId .if eax mov hTaskHandle, eax invoke TerminateProcess, eax, -1 invoke CloseHandle, hTaskHandle .endif
刚开始一直调用不成功,最后调试了半天,发现任务管理器的名称有点特殊,
windows任务管理器的名称是
;windows任务管理器的名称中间加了一个空格
sztaskmgrdb'Windows 任务管理器', 0
他早中间加了一个空格。差点累死我。一直找不出错误。
1197

被折叠的 条评论
为什么被折叠?



