
お世話になります
VB6でプリントスクリーンを無効にする機能を作成しているのですが、
hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyBoardProc, 0&, App.ThreadID)
フックはたぶん正常に定義できているようで、
KeyBoardProcでプリントスクリーンキーを捕まえて「44」でブレイクも脹れています。
ここで戻り値「1」を返しているのですが、クリップボードに画像が生成されてしまいます。
画像が生成されない様にするには、何が間違っているのかおしえていただけないでしょうか?
'*********************************************************************
' フックプロシジャー
'*********************************************************************
Public Function KeyBoardProc(ByVal nCode As Integer, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim ret As Long
If nCode < 0 Then
KeyBoardProc = CallNextHookEx(hHook, nCode, wParam, lParam)
Exit Function
End If
Select Case wParam
' Print Screen
Case 44
KeyBoardProc = 1
Exit Function
End Select
KeyBoardProc = CallNextHookEx(hHook, nCode, wParam, lParam)
End Function
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-RE …
回答ありがとうございました
本当はKeyそのものを受け付けない様にしたかったのですが
clipboard.clearでも、目的を達成できたので、
採用させていただきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) ワークシート内を検索 1 2022/12/19 23:46
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
背景画像の繰り返しについて
-
画像のピクセルデータの取得
-
一つの画像?にいくつもリンク
-
EXCEL VBA 複数のImageコントロ...
-
「using Windows」でエラーが出る
-
ラベリングした画像を抜き出す
-
【EXCEL VBA】ダブルクリックで...
-
Excel ユーザーフォームで表示...
-
uwscの画像認識に失敗します。
-
画像の輝度値のプログラムにつ...
-
C# Picturebox 縮小・拡大時の...
-
uwcs のマクロで画像認識をして...
-
画像のビット数を変更する方法
-
uwscの画像認識の不具合だと思...
-
UWSC「画像が無い場合」
-
VB6でプリントスクリーンを無効...
-
Jimdoで画像をポップアップ表示...
-
ExcelのVBAで教えてほしいです。
-
gif 画像上の ボタンに リン...
-
日本の白地図の画像に、都道府...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
背景画像の繰り返しについて
-
EXCEL VBA 複数のImageコントロ...
-
【EXCEL VBA】ダブルクリックで...
-
uwcs のマクロで画像認識をして...
-
UWSCの画像認識と条件分岐につ...
-
UWSCでループ処理がうまくいき...
-
vb.net 画像の透過について
-
「using Windows」でエラーが出る
-
Excel ユーザーフォームで表示...
-
UWSC 画像判定と条件分岐について
-
uwscの画像認識に失敗します。
-
画像のビット数を変更する方法
-
jqueryスライダーを2段でスライ...
-
画像処理したBitmapをピクチャ...
-
UWSCの色判定
-
UWSCについて
-
スマホでサイトの画像を長押し→...
-
VBAのユーザーフォームのイメー...
-
gif 画像上の ボタンに リン...
-
画像のピクセルデータの取得
おすすめ情報