CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

被Hook屏蔽后 怎样恢复系统安键????救命。。。。

楼主lainanxi001(猪头001)2005-06-01 09:50:42 在 VC/MFC / 基础类 提问

最近在改一个程序       里面有一个     当程序运行是屏蔽所有系统安键的功能        
   
  用到了     SetWindowsHookEx(WH_KEYBOARD_LL,   LowLevelKeyboardProc,   AfxGetInstanceHandle(),   0);  
   
   
  LowLevelKeyboardProc(int   nCode,WPARAM   wParam,   LPARAM   lParam)      
  {   BOOL   fEatKeystroke   =   FALSE;  
      if   (nCode   ==   HC_ACTION)  
      {switch   (wParam)  
  { case   WM_KEYDOWN:  
  case   WM_SYSKEYDOWN:  
  case   WM_KEYUP:  
  case   WM_SYSKEYUP:  
  PKBDLLHOOKSTRUCT   p   =   (PKBDLLHOOKSTRUCT)lParam;  
  fEatKeystroke   =   (  
   
                                      //   win  
  p->vkCode   ==   VK_LWIN   ||   p->vkCode   ==   VK_RWIN  
   
                  //   F4   +   alt  
                ||   ((p->vkCode   ==   VK_F4)   &&   ((p->flags   &   LLKHF_ALTDOWN)   !=   0))  
   
                  //   tab   +   alt  
                ||   ((p->vkCode   ==   VK_TAB)   &&   ((p->flags   &   LLKHF_ALTDOWN)   !=   0))  
   
                //   esc   +   alt  
                ||   ((p->vkCode   ==   VK_ESCAPE)   &&   ((p->flags   &   LLKHF_ALTDOWN)   !=   0))  
   
                //   esc   +   ctrl  
          ||   ((p->vkCode   ==   VK_ESCAPE)   &&   ((GetKeyState(VK_CONTROL)   &   0x8000)   !=   0)));  
   
  break;  
  }  
        }  
   
  return   (fEatKeystroke   ?   1   :   CallNextHookEx(NULL,   nCode,   wParam,   lParam));  
  }  
   
   
  我判断这个应该是屏蔽用的       在程序结束后用了一个  
   
  UnhookWindowsHookEx(XXX);  
  在OnDestroy()里面   ,     应该是   释放用的吧?  
   
   
   
   
  现在的问题是     我在程序执行过程中非法     退出了   。。   结果现在系统     按键全废了。。。开始菜单的关机也被搞没了              
  大哥们       我怎么办????? 问题点数:20、回复次数:12Top

1 楼lainanxi001(猪头001)回复于 2005-06-01 15:05:01 得分 0

自己顶一下Top

2 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-06-01 19:29:19 得分 0

钩子如果没有正确释放,就可能影响系统的消息处理等Top

3 楼newbiestar()回复于 2005-06-01 21:21:13 得分 0

这个基本上没有办法,除非杀入Windows的kernel,然后把那个钩子卸掉……或者抢先注册一个钩子,然后注册这个钩子,非法退出以后再注册一个钩子,用最后的钩子和前面的钩子直接通讯,绕过那个卸不掉的……Top

4 楼lainanxi001(猪头001)回复于 2005-06-02 09:55:22 得分 0

...............................................Top

5 楼rabo(不哭死人)回复于 2005-06-02 10:01:30 得分 0

重启了也不行哇?如果你的钩子是在启动前就启动了。那你就只有。。。。。。。。太惨了,我就不说了。Top

6 楼uoyevoli(爱什么呢?www.FARPROC.com)回复于 2005-06-02 11:29:45 得分 0

同情啊。  
  把硬盘挂到另外一个机子上,去掉启动项里关于这个钩子的东西。Top

7 楼newbiestar()回复于 2005-06-02 13:12:05 得分 20

全局钩子要靠Dll载入的,只要把Dll名字改了,然后把导出符号也改了,理论上只要运气不是太差,就可以灭了这个hook的……Top

8 楼WuOu(天堂*蓝珀湖*仰音*诚彦)回复于 2005-06-02 13:54:58 得分 0

看来是你的程序非法退出时,没有执行UnhookWindowHookEx()函数卸掉钩子,同时,你的这个程序又设置为开机时启动,所以可以在启动时进入安全模式修改注册表项试试,不行的话,可以像楼上说的把硬盘挂到另一台机器上......Top

9 楼lwg0869(lwg)回复于 2005-06-02 16:05:58 得分 0

同意   newbiestar()  
   
  ----找dll   del   这个dll  
      ------------------------------------------  
  不会连鼠标也被钩了吧?----那可太惨了  
   
  Top

10 楼lainanxi001(猪头001)回复于 2005-06-02 17:40:14 得分 0

是这样,         一个独立的程序,     启动时     屏蔽系统的   关机等功能,   在关闭该程序时,恢复系统的各功能.                              
  我现在的状况是       开机后     没有启动任何程序的情况下       仍然不具备     关机等功能.  
  好象   没用到什么DLL   ....      
  是一个前辈写的东西,     他走了     我正在看...     对钩子   本来就不怎么懂,   不过上面的代码是我能找到的唯一   屏蔽系统功能的地方了.....       无奈   ,       各位哥哥说得能不能在简单明了点...有点看不懂Top

11 楼lainanxi001(猪头001)回复于 2005-06-03 08:43:42 得分 0

而在另一台机器上     重启后     一切恢复正常。。。。Top

12 楼lainanxi001(猪头001)回复于 2005-06-06 08:54:48 得分 0

.....自己顶吧!~Top

相关问题

  • 屏蔽和恢复系统功能键
  • 怎样屏蔽 MDI窗体的 恢复、关闭、标题栏左边的系统按钮!
  • 请问如何取得自定义Key-HOOK的高优先级(在系统级屏蔽按键)
  • 在2000中如何屏蔽Ctrl+Alt+Del等系统功能键,HOOK似乎不行
  • 如何屏蔽和解除屏蔽系统状态栏
  • 怎样屏蔽WINDOWS NT4.0系统键。
  • 请教:如何屏蔽系统热键 ?!
  • 如何来屏蔽系统键???
  • 如何屏蔽系统的enter和esc!!!
  • 如何屏蔽系统的Ctrl+Alt+Delete

关键词

  • 屏蔽
  • 系统
  • 注册
  • dll
  • 钩子
  • vkcode
  • 程序
  • featkeystroke
  • altdown
  • llkhf

得分解答快速导航

  • 帖主:lainanxi001
  • newbiestar

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo