如何防止使用者按下 Print Screen 抓畫面

如何防止使用者按下 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 ..。