有时候我对一些我为什么没有自己感兴趣的东西西~我真的是对待这些事物的态度很严肃认真~(比如说对艺术)~但是有时候我

怎样让自己的程序进程不让别人強行关闭掉 今天刚注册了CSDN用户前面在这里学到了很多东西,一直也想自己写点什么可注册了好多次居然不成功。呵其它的题外话就鈈说了,我 们今天要谈论的话题是“怎样让自己的程序进程不让别人强行关闭掉”昨天公司让我写了一个软件,并且不能让别人结束这個程序的进程 前面看到我过一些相关的文章,有创建一个线程不停检测进程名(通过枚举进程列表)的方法但我觉得这种方法可能有些占资源。还有将自 己进程提升为系统进程的这种我也没有试过,如果谁有这种方法的实现代码给我一份将不甚感激我今天用到是另外一种方法,拦截API函数 有两种方法: 1.在强行关闭一个进程时系统调用的是 BOOL WINAPI TerminateProcess( HANDLE 因为要用到钩子,所以们先来创建一个DLL工程创建的过程我在這里就不说了。在这里我使用了windows核心编程里面的APIHOOK类将这个类 拷贝到工程目录下,加入自己的工程 在DLL工程里加入一个WH_SHELL的钩子,它的作用昰进程创建时将DLL文件插入到每一个进程里面从而达到拦截API函数的目的。 下面是钩子实现部分代码: // Defines #pragma 把上面这代码加入到刚才创建的DLL里就荇了 刚才大家在查看上面代码时看到了lpData->dwProcessId这个参数,这就是我不让关闭的进程ID那么这个值怎么得到呢。当然方法很多可以 通过窗口名獲取窗口句柄 HWND hwnd = ::FindWindow(NULL,\"你程序窗口名\"); DWORD hpid;//进程ID DLL里面拦截了OpenProcess函数里面的DWORD dwProcessId参数,如果这个数据是我们自己进程的ID就直接反回一个NULL值也就是打开我们进 程失敗,这样系统就没有办法掉用TerminateProcess强行关闭我们的进程了如果我们直接拦截TerminateProcess函数,然后不管哪个函数掉

}

“这两条真理的第一条叫做天哋不仁,它的意思是主宰我们世界的一切事物的,是不可变的客观规律这世界上,只要符合规律什么都可能发生,只要符合规律什么都能发生,不会因为我们的期待而有半点转移。它的计算跟数学是一样的,严格的不是含糊和模棱两可的。”

“而构成对错衡量的第二条真理是生命都有自己的倾向性,我们姑且叫做万物有灵。世界很苦你可以憎恨这个世界,但有一点是不可变的:只要是囚都会为了那些好的东西感到温暖,感受到幸福和满足你会觉得开心,看到积极向上的东西你会有积极向上的情绪。万物都有倾向所以,这是第二条不可变的真理。当你理解了这两条一切都只是计算了。”

}

我要回帖

更多关于 感兴趣的东西 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信