win2000下如何屏蔽热键

oppo 2003-07-10 03:42:37
用虚拟桌面限制用户权限,防止用户访问硬盘,热键在2000下怎样屏蔽掉???
...全文
20 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sean918 2003-07-29
  • 打赏
  • 举报
回复
参考下面的例子,是在2000下监视用户鼠标和键盘的操作,你可以稍加修改:
====================================
''form1:
Sub form_load()
lMouseHook = SetWindowsHookEx(WH_MOUSE_LL, AddressOf LowLevelMouseProc, App.hInstance, 0)
lKeyBoardHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
End Sub

Private Sub Form_Unload(Cancel As Integer)
If lMouseHook <> 0 Then
UnhookWindowsHookEx lMouseHook
End If

If lKeyBoardHook <> 0 Then
UnhookWindowsHookEx lKeyBoardHook
End If

End Sub

================================================================
'module1:
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 UnhookWindowsHookEx Lib "user32" (ByVal hHook 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 Const HC_ACTION = 0
Public Const WH_KEYBOARD_LL = 13
Public Const WH_MOUSE_LL = 14

'鼠标消息
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_MOUSEWHEEL = &H20A
Public Const WM_MOUSEMOVE = &H200

'键盘消息
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101


Public lMouseHook As Long, lKeyBoardHook As Long

Public Function LowLevelMouseProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If code = HC_ACTION Then
Select Case wParam
Case WM_MOUSEMOVE
Form1.Text1 = "mouse MOVE"
Case WM_RBUTTONUP
Form1.Text1 = "mouse RBUTTONUP"
Case WM_RBUTTONDOWN
Form1.Text1 = "mouse RBUTTONDOWN"
Case WM_LBUTTONUP
Form1.Text1 = "mouse LBUTTONUP"
Case WM_LBUTTONDOWN
Form1.Text1 = "mouse LBUTTONDOWN"
Case WM_MOUSEWHEEL
Form1.Text1 = "mouse MOUSEWHEEL"
End Select
End If

If code <> 0 Then
LowLevelMouseProc = CallNextHookEx(0, code, wParam, lParam)
End If

End Function


Public Function LowLevelKeyboardProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If code = HC_ACTION Then
Select Case wParam
Case WM_KEYDOWN
Form1.Caption = "key down"
Case WM_KEYUP
Form1.Caption = "key up"
End Select
End If

If code <> 0 Then
LowLevelKeyboardProc = CallNextHookEx(0, code, wParam, lParam)
End If

End Function
vcbug 2003-07-29
  • 打赏
  • 举报
回复
2000下加vb不好弄,我用的时候改注册表的方法,使alt+del+ctrl掉出来的窗口变灰
只能算是马马虎虎吧,你去搜索下,很多讨论这问题的,都是没有下文的
叶帆 2003-07-29
  • 打赏
  • 举报
回复
用这个,可以达到屏蔽热键的目的(ctrl+alt+Del不能屏蔽)WH_KEYBOARD_LL=13
ftp0697 2003-07-28
  • 打赏
  • 举报
回复
有没有VB的代码?
pigpag 2003-07-28
  • 打赏
  • 举报
回复
你试试看

hHook=SetWindowsHookEx(WH_KEYBOARD, AddressOf 回调函数, 0, App.ThreadID)

WH_KEYBOARD可以用底层键盘钩子代替,可是常量名忘了。WH_LLKEYBOARD?...

不要在回调函数里面写CallNextHookEx,退出程序要调用
UnhookWindowsHookEx hHook
pigpag 2003-07-28
  • 打赏
  • 举报
回复
WinKey+L,要在Win2000编写可能死机(对于被限制者是这样的)程序,效果总是不好的。
Windows钩子函数是SetWindowsHookEx,你马上会发现不能达到限制用户输入的目的的。
mafangsan 2003-07-10
  • 打赏
  • 举报
回复
要写系统键盘钩子了

最好用Visual C++去写
lwm1977 2003-07-10
  • 打赏
  • 举报
回复
用许多API函数

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧