菜鸟想用C#hook api的阻止关闭程序问题

franchdream 2005-11-24 09:48:31
我想阻止其他人在任务管理器中终止我的程序,看了许多东西,连续两天熬夜了,找到了HOOK MOUSE和键盘的程序,可是还是没有头绪.听说要HOOK OpenProcess 可是没有具体的代码,连C++的都没有.看见C++讨论区里面有这个问题的讨论,不过没有把代码贴出来.
非常希望这里的高手赐教,指条路谢谢!
另外还想知道是HOOK本地还是HOOK全局?谢谢!
另外对于C++不熟悉,听说要写HOOKDLL一定要C++来写C#不行,我不会用C++写DLL,也请高手务必指教.
写DLL是不是一定要写个类似的函数:
BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
//
// Capture the application instance of this module to pass to
// hook initialization.
//
if (g_appInstance == NULL)
{
g_appInstance = hinstDLL;
}
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;

case DLL_PROCESS_DETACH:
break;

default:
OutputDebugString("Not sure what just happened.\n");
break;
}

return TRUE;
}
然后在C#中这样HOOK
hKeyboardHook = SetWindowsHookEx( 这里不知道要写什么,
HookProcedure,
Marshal.GetHINSTANCE(
"my.dll") 0);
希望C++高手能给予帮助!
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
diandian82 2006-03-25
  • 打赏
  • 举报
回复
为什么用3个进程呢?两个不行啊?
xrwang 2006-03-25
  • 打赏
  • 举报
回复
强,3个互相监控.......
ParadiseX 2006-03-25
  • 打赏
  • 举报
回复
你这个是治标不治本的方法,还是多进程互锁最为安全。就是用三个进程互相监控,当对方有被关闭的立刻重新启动它
leisang 2006-03-25
  • 打赏
  • 举报
回复
不让人家关闭,这样的程序我可不会让它在我的电脑上运行

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧