掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォーム外でマウスのクリックを判定するには? (ID:74123)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
下記のようにすれば一応できますが、あまりよろしくない方法なので色々と変更して下さい。 Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function GetForegroundWindow Lib "user32" () As Long Dim MyClassname As String * 255 Private Sub Form_Load() Timer1.Interval = 100 '自分のクラス名を取得しておく Call GetClassName(hWnd, MyClassname, 255) End Sub Private Sub Timer1_Timer() Dim nhWnd As Long Dim ClassName As String * 255 'ユーザーが操作中のウインドウを取得 nhWnd = GetForegroundWindow() '取得したウインドウのクラス名を取得 Call GetClassName(nhWnd, ClassName, 255) 'NULL文字除去&比較 If Left(ClassName, InStr(ClassName, Chr(0)) - 1) <> Left(ClassName, InStr(MyClassname, Chr(0)) - 1) Then Label1 = "自分以外のウインドウが触られました。" Else Label1 = "" End If End Sub ※本格的に取得したい場合は下記のAPIを参照して下さい。但し、VBのデバッグは貧弱なので注意して下さい。 <Win32API> 'フック チェイン内にアプリケーション定義のフック プロシージャをインストールする Public 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 'フック チェイン内にインストールされたフック プロシージャを削除 Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long '現在のフック チェインの次のフック プロシージャにフック情報を渡す Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal Wparam As Long, Lparam As Long) As Long <定数> Public Const WM_LBUTTONDOWN = &H201 'マウス左ボタンクリック Public Const WH_MOUSE = 7 'マウス メッセージを監視
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.