如题,就是不让系统的软件切换起作用。
解决方案 »
- 请问如何用VB将相应代码直接生成DLL?
- 如何获得光标是在表格的第几行?
- 求POS机应用的进销存软件,UP有分!
- 各位大哥,帮忙看一下这段代码有没有问题? 在98系统下,经常导致死机,2000 下正常
- 怎么修改“用户名”和“密码”?
- VB读取xls数据时提示:不可识别的数据库格式
- 高分求助:有没有办法把字符串“(400-200)*2”计算出结果来。 up有分!!!
- 简单问题:如何得知据库中有几个表,表名分别是什末?,即可回分!!
- VB6的汉化包哪有下载?
- 有关于api获取窗体句柄的问题!!!帮忙啊
- 能不能用vb6编写一个自动弹出窗口?
- 关于使用Scripting.FileSystemObject文件系统对象的问题
这个API的操作还真的不熟,因此不知道要如何改
http://www.m5home.com/bbs/thread-1040-1-1.html初始密码是123456,别弄忘了.代码中有注入winlogon.exe行为,安全软件可能要有动作.这是使用高手阿国的锁定键盘代码做成的.</p><p>当本程序运行时,键盘没用了~(除开关机键.那几个键好象没办法屏蔽)</p><p>只能在屏幕上输入正确的密码后,才可以解锁
问题已经解决:模块内容:
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 TypePublic lHook As LongDim p As KBDLLHOOKSTRUCT'键盘钩子
Public Function CallKeyHookProc(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.flags And LLKHF_ALTDOWN) <> 0) Or _
((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0)) Or _
((p.vkCode = 91) Or (p.vkCode = 92) Or (p.vkCode = 93))
'判断是否按下了:TAB+ALT、Esc+ALT、Alt(Alt+F4)、Esc+Ctrl、左右 Win 和徽标键
End If
End If
If fEatKeystroke Then
' 设置为 1 可以屏蔽按键
CallKeyHookProc = 1
Else
CallKeyHookProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
End If
End Function
窗口程序:
Private Sub Form_Load()
lHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf CallKeyHookProc, App.hInstance, 0)
End SubPrivate Sub Form_Unload(Cancel As Integer)
UnhookWindowsHookEx lHook
End Sub