掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォーム外でマウスのクリックを判定するには? (ID:74121)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
えーと。 本来はデスクトップウインドウを「サブクラス化」するかフックプロシージャをインストールして「システム全体に影響を及ぼすフック」などで検知するのですがVBでは面倒なのでもっとも簡単な方法(タイマーイベントを利用)で検知します。 ※「システム全体に影響を及ぼすフック」の方法はDelphiコーナーを見てください。 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 Private Sub Form_Load() Timer1.Interval = 100 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) = "Progman" Then Label1 = "デスクトップがクリックされちゃいました。" Else Label1 = "" End If End Sub ※Progmanはデスクトップのクラス名です。VC++などについている「Spy++」で確認すればわかります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.