• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB6でプリントスクリーンを無効にする)

VB6でプリントスクリーンを無効にする

このQ&Aのポイント
  • VB6でプリントスクリーンを無効にする機能を作成する方法を説明します。
  • ハンドルを使用してフックを正常に定義し、KeyBoardProcでプリントスクリーンキーを捕まえて戻り値を1に設定します。
  • しかし、クリップボードに画像が生成されてしまう問題が発生しています。画像が生成されないようにするためには、どのような設定が必要かを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

これ(参照URLの一番上の回答)でできているけど、何が違うのか良くわかりません。 unhookを呼び出す際にclipboard.clearしても同じ状況でしょうか? Private 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 Private Declare Function CallNextHookEx Lib "user32" ( _ ByVal hHook As Long, _ ByVal nCode As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" ( _ ByVal hHook As Long) As Long Private Declare Sub CopyMemory _ Lib "kernel32" Alias "RtlMoveMemory" ( _ pDest As Any, _ pSource As Any, _ ByVal cb As Long) Private Type KBDLLHOOKSTRUCT vkCode As Long scanCode As Long flags As Long time As Long dwExtraInfo As Long End Type Private Const HC_ACTION = 0 Private Const VK_SNAPSHOT = &H2C Private Const WH_KEYBOARD_LL = 13& Private hKeyb As Long Public Function KeybCallback(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Static udtHook As KBDLLHOOKSTRUCT If (Code = HC_ACTION) Then 'Copy the keyboard data out of the lParam (which is a pointer) Call CopyMemory(udtHook, ByVal lParam, Len(udtHook)) If udtHook.vkCode = VK_SNAPSHOT Then KeybCallback = 1 Exit Function End If End If KeybCallback = CallNextHookEx(hKeyb, Code, wParam, lParam) End Function Public Sub HookKeyboard() UnhookKeyboard hKeyb = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KeybCallback, App.hInstance, 0&) End Sub Public Sub UnhookKeyboard() If hKeyb <> 0 Then Call UnhookWindowsHookEx(hKeyb) hKeyb = 0 End If End Sub

参考URL:
http://www.vbforums.com/showthread.php?372390-RESOLVED-Turn-off-Print-Screen
usami33
質問者

お礼

回答ありがとうございました 本当はKeyそのものを受け付けない様にしたかったのですが clipboard.clearでも、目的を達成できたので、 採用させていただきました。

関連するQ&A