C#利用TerminateProcess()和OpenProcess()函数阻止结束进程
答案:1 悬赏:70 手机版
解决时间 2021-02-11 09:22
- 提问者网友:箛茗
- 2021-02-10 18:45
C#利用TerminateProcess()和OpenProcess()函数阻止结束进程
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-02-10 19:09
windows 系统有一个叫做system hook的技术,用于让你对系统api做些手脚。
你可以通过注册一个新的TerminateProcess函数钩子,当系统调用这个函数时,就会调用你的函数,你的函数可以判断这个进程是不是你的程序,比如通过窗口的title,class什么的。
如果不是你的窗口,就调用原始的TerminateProcess,如果是你的窗口,就直接return.
另外,你也可以试试重载你的C#程序的WinProc方法,对于WM_CLOSE, WM_DESTORY, WM_QUIT之类的消息进行忽略,只对于自己发出的关闭才正常响应。
上述两个思路,你选择吧。代码没有功夫写。
你的那个思路技术上有些问题。
你可以通过注册一个新的TerminateProcess函数钩子,当系统调用这个函数时,就会调用你的函数,你的函数可以判断这个进程是不是你的程序,比如通过窗口的title,class什么的。
如果不是你的窗口,就调用原始的TerminateProcess,如果是你的窗口,就直接return.
另外,你也可以试试重载你的C#程序的WinProc方法,对于WM_CLOSE, WM_DESTORY, WM_QUIT之类的消息进行忽略,只对于自己发出的关闭才正常响应。
上述两个思路,你选择吧。代码没有功夫写。
你的那个思路技术上有些问题。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯