怎样屏蔽PrintScreenSysRq键,限制客户利用这个键抓屏,跪求!!!
解决方案 »
- VB右边工程视图原来和属性问题(菜鸟提问)
- setupfactory 打包!!
- timer Interval能不能在timer on里面修改
- 急!!!java和VB的COM参数传递问题
- 到哪才能得到VB电子文档
- 怎样做一个进度条?
- 用ADO技术的一个错误!!(不知错在那。好我是初学者,多多指教,万分感谢!)
- 为什么总是接连显示打开文件的内容?(详情见内)'希望能到得到您的不吝赐教,在下万分感激,偶在线等候您的答复.
- 在查询分析器中执行了更新语句,如何回滚?
- 从vb6升级到.net后的软件,是不是100%会需要.net framework才能运行的?还是说有部分不用?vc6编写的好像就部分不用
- 请问ADODC控件的更新问题!!
- 急急急 请问各位大虾 如何给ACCESS的程序打包
Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long
Private Const VK_SNAPSHOT = &H2CPrivate Sub Form_Load()
Call RegisterHotKey(Me.hWnd, &HBFFF&, 0, VK_SNAPSHOT)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Call UnregisterHotKey(Me.hWnd, &HBFFF&)
End Sub
Private Sub Timer1_Timer()
Clipboard.Clear
End Sub
Declare Function SetWindowsHookExA Lib "user32" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As LongPublic hNextHookProc As Long
Const HC_ACTION = 0
Const WH_KEYBOARD = 2
Const WH_KEYBOARD_LL = 13
Private Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End TypePublic Sub UnHookKBD()
If hNextHookProc <> 0 Then
UnhookWindowsHookEx hNextHookProc
hNextHookProc = 0
End If
End Sub
Public Function EnableKBDHook() As Boolean
If hNextHookProc = 0 Then
'安装的是Low Level的键盘钩子
hNextHookProc = SetWindowsHookExA(WH_KEYBOARD_LL, AddressOf MyKBHFunc, App.hInstance, 0)
End If
EnableKBDHook = hNextHookProc <> 0
End Function
Public Function MyKBHFunc(ByVal iCode As Long, ByVal wParam As Long, lParam As KBDLLHOOKSTRUCT) As Long
MyKBHFunc = 0 '讯息要处理
If iCode < 0 Then
MyKBHFunc = CallNextHookEx(hNextHookProc, iCode, wParam, lParam)
Exit Function
End If
If lParam.vkCode = vbKeySnapshot Then '有没有按到PrintScreen键
MyKBHFunc = 1 '在这个Hook便吃掉这个讯息
Debug.Print "PrintScreenSysRq"
'普通的键盘钩子不能屏蔽PrintScreenSysRq,可以清空剪贴板
'If Clipboard.GetFormat(vbCFBitmap) Then Clipboard.Clear
Else
Call CallNextHookEx(hNextHookProc, iCode, wParam, lParam)
End If
'Debug.Print lParam.vkCode
End Function'以下在Form
Private Sub Form_Load()
Call EnableKBDHook
End SubPrivate Sub Form_Unload(Cancel As Integer)
Call UnHookKBD
End Sub
在该键右侧新建去新建一个DWORD类型的键值EnablePrintScreen,并设置起值为0,则WINDOWS禁止系统的屏幕打印功能。