请教如何用VB禁止使用热鍵?
我想要这样一个VB程序
这个程序一运行禁止用户使用ALT(让ALT鍵失灵 在任何应用程序中都不起作用)
用户通过热鍵可关闭这个程序 如CTRL+F1 关闭后ALT又可正常使用
问题点数:100、回复次数:7Top
1 楼since1990(level)回复于 2003-08-02 00:11:51 得分 10
捕获alt键的输入
找找吧,许多类似的源码Top
2 楼jounercool(静待花开)回复于 2003-08-02 09:57:55 得分 10
抢个2楼先
帮你顶下拉
接分快乐
谢谢Top
3 楼diyee(锦衣夜行)回复于 2003-08-02 10:00:44 得分 50
在 VB 的应用得到以前就处理键盘动作,实现对键盘的全面控制, 可过滤任意的键。下面的例子过滤了 CTRL+C 键, 并把该键模拟为在 Command1 上单击。
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
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 PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const WH_KEYBOARD = 2
Public Const KBH_MASK = &H20000000
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Global hHook As Long
'KeyboardProc 在 VB 应用动作前发生
Public Function KeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If nCode >= 0 Then
'处理你希望过滤的键
If wParam = Asc("C") And (lParam And KBH_MASK) <> 0 Then
If (lParam And &HC0000000) = 0 Then
'模拟在Command1 中单击
Form1.Command1.SetFocus
Call PostMessage(Form1.Command1.hwnd, WM_LBUTTONDOWN, 0, &H20002)
Call PostMessage(Form1.Command1.hwnd, WM_LBUTTONUP, 0, &H20002)
KeyboardProc = 1
Exit Function
End If
End If
End If
KeyboardProc = CallNextHookEx(hHook, nCode, wParam, lParam)
End Function
Private Sub Form_Load()
'将 KeyboardProc 连接到中断上
hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, 0&, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnhookWindowsHookEx(hHook)
End SubTop
4 楼ftp0697(Bismarck(a)人不风流枉少年)回复于 2003-08-02 10:02:58 得分 20
http://expert.csdn.net/Expert/topic/1774/1774255.xml?temp=.9921533Top
5 楼yamengyang(大杨)回复于 2003-08-02 10:03:01 得分 10
顶~~~
接分快乐~
Top
6 楼heijingang(黑金刚)回复于 2003-08-03 00:31:19 得分 0
谢谢各位兄弟Top
7 楼heijingang(黑金刚)回复于 2003-08-03 00:33:51 得分 0
谢谢各位Top




