键盘上有"WakeUP","Sleep","Power"三个快捷键,经常误按导致操作全部丢失,由于是品牌机,BIOS设置有限,所以无法通过BIOS设置更改解决。请问如何在程序中屏蔽这三个键?
解决方案 »
- SQL语句里,如何用一个开始时间一个结束时间为条件,查询一个时间段内的数据。请高手指教。
- 数据库连接对象Connection的疑问??
- mscomct2.oca是什么文件呀?mscomct2.ocx我是知道的,可是oca是什么呀?
- Visual Basic 深度下潜之海蛇缠绕
- 报表打印的问题?急用,分不够可以在加!!
- 有谁给我一个 IJL11.DLL 的用法,谢谢100分
- 未找到方法和数据成员,请问大家能不能帮我解决一下,谢谢了
- 关于软件开发的报价??
- happy new year to all
- VB6开发的ActiveX DLL与VC开发的DLL有什么不同
- 一个外国人写的.实现菜单历史记录的功能!
- 关于splitframe控件的问题。谢谢大家
Begin VB.Form frmMain
Caption = "Form1"
ClientHeight = 5715
ClientLeft = 1965
ClientTop = 1545
ClientWidth = 6585
LinkTopic = "Form1"
ScaleHeight = 5715
ScaleWidth = 6585
Begin VB.CheckBox chkDisable
Caption = "&Disable ALT-TAB, ALT-ESC, CTRL-ESC"
Height = 495
Left = 960
TabIndex = 0
Top = 120
Width = 3735
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option ExplicitDim hhkLowLevelKybd As LongPrivate Sub chkDisable_Click()
If chkDisable = vbChecked Then
hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
Else
UnhookWindowsHookEx hhkLowLevelKybd
hhkLowLevelKybd = 0
End If
End SubPrivate Sub Form_Unload(Cancel As Integer)
If hhkLowLevelKybd <> 0 Then UnhookWindowsHookEx hhkLowLevelKybd
End Sub
'mod里面的代码Attribute VB_Name = "modDisableLowLevelKeys"
Option ExplicitPublic Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Const HC_ACTION = 0
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
Public Const VK_TAB = &H9
Public Const VK_CONTROL = &H11
Public Const VK_ESCAPE = &H1BPublic Const WH_KEYBOARD_LL = 13
Public Const LLKHF_ALTDOWN = &H20Public Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End TypeDim p As KBDLLHOOKSTRUCTPublic Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim fEatKeystroke As Boolean
If (nCode = HC_ACTION) Then
If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
CopyMemory p, ByVal lParam, Len(p)
fEatKeystroke = _
((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = VK_ESCAPE) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0)) Or _
((p.vkCode = vbKeyDelete) And ((GetKeyState(VK_CONTROL) And &H8000 <> 0) And (GetKeyState(vbKeyShift) And &H8000) <> 0))
End If
End If
If fEatKeystroke Then
LowLevelKeyboardProc = -1
Else
LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
End If
End Function
文件大小:35K
适用系统:Windows 2000/XP/2003说明:本键盘映射工具仅修改注册表,不驻留内存。
通过本工具,你可以将键盘上一些不常用的键定义
为其它功能或者将其禁用,如将 ScrollLock 定义
为静音、Wake Up 定义为减小音量、Sleep 定义为
增大音量等等。
注意:如要将 Power/Sleep 这两个键重定义,在
XP 下需要在控制面板/电源选项/高级/电源按
钮设置中改为“不采取任何措施”。而在 Windows
2000 下不能完全禁用其原功能,导入 XP 的某些
注册表项目可以实现,但我还没有整理清楚。作者主页:http://silence.hao-8.com/下载地址:http://silence.hao-8.com/keybmap.rar