none
vb.net程序如何禁用键盘按键和快捷组合键 RRS feed

  • 问题

  • 现在用vb.net在做一个屏幕锁定软件,需要当这个程序开启的时候,锁定全部键盘按键,包括一切的键盘组合键,包括alt+tab ,alt+ctrl+del等系统最高权限的组合键,只留下一个entre或几个按键可以给我自己设置他的事件,代码应该怎么去写?
    看了很多地方,有说用hook的,有说用api的很多方法的,但是到底怎么样实现呢?
    希望高手们提供代码,直接再fromload()事件里面的代码,让一开启就锁定所有键盘按键。

    这里要请教众多高手,提供具体操作流程,和源代码。急~~谢谢

    2009年3月28日 13:00

答案

全部回复

  • 要写键盘过滤驱动。.net语言做不到。
    MSMVP VC++
    2009年3月28日 15:51
    版主
  • 你好!
         这个单纯使用VB.NET很难实现,需要调用Windows API,如果是这样,还不如直接使用C++来实现啊!这种功能C++比较擅长啊!
    周雪峰
    2009年3月29日 5:37
    版主
  • 您好,我需要您的帮助,因为我不懂C++,所以即使用API复杂一点点,我也想学学该怎么弄。
    其实禁用alt+ctrl+del为的就是不让人家挑出任务管理器把当前程序关掉。
    如果您能有用vb.net最简单的一段代码,实现 如用timmer循环监视系统任务,发现有任务管理器的任务,自动关闭,也能达到同样的效果。
    谢谢~
    2009年3月31日 5:41
  • 这个可以用权限来做,管理员启动的程序普通用户关不掉。
    内建的任务管理器屏蔽了,还有其他程序可以关掉进程的。

    MSMVP VC++
    2009年3月31日 5:45
    版主
  • 你好!
         你试试这个方法,是通过修改注册表来屏蔽任务管理器的:
      Dim   hKey   As   Long  
              Dim   Value   As   Long   ''value   =   1   --   禁用,   value   =   0   -- 不禁用  
              Value   =   0  
              '修改注册表屏蔽任务管理器  
              RegCreateKey   HKEY_LOCAL_MACHINE,   "Software\Microsoft\Windows\CurrentVersion\Policies\System",   hKey  
              RegSetValueEx   hKey,   "DisableTaskMgr",   0,   REG_DWORD,   Value,   4  
               
              RegCloseKey   hKey  
               
    周雪峰
    2009年3月31日 8:22
    版主
  • 谢谢你的建议,已经解决了这个问题了~

    2009年4月16日 3:32