hook api的阻止关闭程序问题

franchdream 2005-11-23 11:21:40
我想阻止其他人在任务管理器中终止我的程序,看了许多东西,连续两天熬夜了,找到了HOOK MOUSE和键盘的程序,可是还是没有头绪.听说要HOOK OpenProcess 可是没有具体的代码,连C++的都没有.看见C++讨论区里面有这个问题的讨论,不过没有把代码贴出来.
非常希望这里的高手赐教,指条路谢谢!
另外还想知道是HOOK本地还是HOOK全局?谢谢!
另外对于C++不熟悉,听说要写HOOKDLL一定要C++来写C#不行,我不会用C++写DLL,也请高手务必指教.
...全文
356 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
franchdream 2005-11-24
  • 打赏
  • 举报
回复
把进程从进程列表中隐藏掉,C++中有讨论, 不过只知道方法,对于C++不熟悉没有办法.《Windows 核心编程》也看了,不过感觉实在太牛了,高度还没有达到,其实最主要是对于c++搞不清楚.
谢谢!
s5689412 2005-11-24
  • 打赏
  • 举报
回复
我想你的意思是不是要屏蔽系统热键,所以需要键盘Hook啊?
不过即使别人不用任务管理器关闭你的程序,也可以用其他的类似程序来关闭,
那些程序可没有热键吧。
我倒觉得与其这样,不如想办法把进程从进程列表中隐藏掉,这类的讨论也很多,Google一下应该可以找到不少。

另外,要使用Hook,建议读读《Windows 核心编程》,有了这本书的基础,再看一些最新的讨论和文章,就可以了。
franchdream 2005-11-24
  • 打赏
  • 举报
回复
up
franchdream 2005-11-24
  • 打赏
  • 举报
回复
万分感谢!不过写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);

?
hainang1234 2005-11-24
  • 打赏
  • 举报
回复
C#的dll文件是IL代码,不是windows的标准dll。
所以要用C++。
大概思路就是:写一个Dll文件,里面放个钩子函数,再在程序中启动这个钩子。钩子只能放在dll中,因为它其实是将dll中的钩子函数挂接到所有进程里面。
franchdream 2005-11-24
  • 打赏
  • 举报
回复
急,在线等.
franchdream 2005-11-24
  • 打赏
  • 举报
回复
沉得真快,自己顶一下.
s5689412 2005-11-24
  • 打赏
  • 举报
回复
如果你要在C#中做到Global Hook,可以看看这几篇文章,看能不能满足你的要求:

http://blog.joycode.com/mvm/archive/2004/10/18/35790.aspx(中文)

以下为英文:
http://www.codeproject.com/csharp/GlobalSystemHook.asp(C++ and C#)
http://www.codeproject.com/csharp/globalhook.asp(pure C#)
franchdream 2005-11-24
  • 打赏
  • 举报
回复
我现在已经有了一个HOOK DLL,是一个全局HOOK,在C#中如何调用他呢?
谢谢!

110,545

社区成员

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

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

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