关于禁止截屏的代码?

blue_x 2003-12-18 09:09:06
大家可不可给一个禁止"PrintScreenSysRq"按键截屏的代码?万分感谢!!
...全文
304 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2003-12-20
  • 打赏
  • 举报
回复
如果可以截屏,你用下面的方法试一下:

一般说来PrintScreen按键截屏后将图像保存到剪切板中,我们可以用一个变通的方法实现禁止截屏的功能;利用 rainstormmaster(rainstormmaster)所说的方法截获对PrintScreen按键,然后清空剪切板。

搂主,你觉得这样可以吗?
blue_x 2003-12-20
  • 打赏
  • 举报
回复
rainstormmaster(rainstormmaster)
非常感谢你的回复!
我试了一下代码,发现是可以截获按键,但截获的同时截屏已经生效了,无论做什么操作都无用了.
我是个菜鸟,还希望你帮助我一下.
blue_x 2003-12-20
  • 打赏
  • 举报
回复
已然解决,多谢二位。
rainstormmaster 2003-12-20
  • 打赏
  • 举报
回复
楼上的可行,你也可以尝试在捕获按键的同时,捕获剪贴板的变化
rainstormmaster 2003-12-18
  • 打赏
  • 举报
回复
顺便说一下:Print Screen这个键,不会在Form的KeyDown, KeyPress, KeyUp Event中作用,所以只好透过KeyBoard Hook去拦截,代码见上
rainstormmaster 2003-12-18
  • 打赏
  • 举报
回复
模块:
Option Explicit
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
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 Long

Public hnexthookproc As Long
Public Const HC_ACTION = 0
Public Const WH_KEYBOARD = 2

Public Sub UnHookKBD()
If hnexthookproc <> 0 Then
UnhookWindowsHookEx hnexthookproc
hnexthookproc = 0
End If
End Sub
Public Function EnableKBDHook()
If hnexthookproc <> 0 Then
Exit Function
End If
hnexthookproc = SetWindowsHookEx(WH_KEYBOARD, AddressOf _
MyKBHFunc, App.hInstance, 0)
If hnexthookproc <> 0 Then
EnableKBDHook = hnexthookproc
End If
End Function
Public Function MyKBHFunc(ByVal iCode As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
'這三個參數是固定的,不能動,而MyKBHFunc這個名稱只要和
'SetWindowsHookex()中 AddressOf後的名稱一樣便可,不一定叫什麼
MyKBHFunc = 0
If iCode < 0 Then
MyKBHFunc = CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
Exit Function
End If
If wParam = vbKeySnapshot Then '偵測 按到PrintScreen鍵
MyKBHFunc = 1
Debug.Print "禁止截屏"
End If
End Function
窗体:
Option Explicit

Private Sub Form_Load()
Call EnableKBDHook
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call UnHookKBD
End Sub


liyan010 2003-12-18
  • 打赏
  • 举报
回复
首先获得pss按键的AscII码,然后在截获键盘信息时,对这个代码进行锁定就ok了

7,763

社区成员

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

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