如何防止使用者按下 Print Screen 抓畫面
如何防止使用者按下 Print Screen 抓畫面 ( 不防相機 )
常在討論區見到這個問題,要如何防止使用者按下 Print Screen 抓取畫面ㄋ?
其實,程式是可以控制啦 ! 但 "相機" 可就防不了囉 ! ^^
寫法有許多種,底下介紹一種 Call API GetAsyncKeyState 的方式給大家參考看看囉 !
Public Class Form1
' 宣告 API GetAsyncKeyState
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short
' 宣告 Timer 類別 , 實作一個在使用者定義的間隔引發事件的計時器。
Private WithEvents tmr As New Timer
' WithEvents 關鍵字 : 指定宣告的成員變數 , 參考可引發事件之類別的執行個體。
' Form_Load 表單載入事件
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
tmr.Interval = 200 ' 設定 Interval 為 1/5 秒 ( 可自行調整 )
' Timer.Interval 屬性: 取得或設定計時器刻度之間的時間,以毫秒為單位。
tmr.Start() ' Timer.Start 方法 : 啟動計時器。
End Sub
' Timer_Tick 事件 : 發生在指定的計時器間隔已耗用,且計時器被啟用時。
Private Sub tmr_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles tmr.Tick
' GetAsyncKeyState 取得鍵盤狀態
If GetAsyncKeyState(Keys.PrintScreen) Then Clipboard.Clear()
' 若按了 Print Screen 鍵, 則清空剪貼簿
End Sub
End Class
PS : 防君子不防小人囉 , 要抓畫面方式很多,So ..。