掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
システムメニューの左マウス押下での処理メッセージの流れを監視するには (ID:29365)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
KHE00221さん、レス有難うございます。 >>なんとなく UP系のメッセージ を処理していないような気がするけど? すこし誤解されているようなので追加説明をしておきます。 マウス操作命令を受け取っての処理部は SetCursorPos(pMs.X,pMs.Y); case WM_Msg of WM_LBUTTONDOWN: MOUSE_EVENT(MOUSEEVENTF_LEFTDOWN,0,0,0,0); WM_LBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_LEFTUP,0,0,0,0); WM_RBUTTONDOWN: MOUSE_EVENT(MOUSEEVENTF_RIGHTDOWN,0,0,0,0); WM_RBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_RIGHTUP,0,0,0,0); WM_NCLBUTTONDOWN: MOUSE_EVENT(MOUSEEVENTF_LEFTDOWN,0,0,0,0); WM_NCLBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_LEFTUP,0,0,0,0); WM_NCRBUTTONDOWN: MOUSE_EVENT(MOUSEEVENTF_RIGHTDOWN,0,0,0,0); WM_NCRBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_RIGHTUP,0,0,0,0); end; という形で、この処理をしているアプリケーションのシステムメニュー以外の部分では、左右マウスの押下、押上のすべての動作が実現しています。 >>押下のところを続けてMOUSE_EVENT(MOUSEEVENTF_LEFTUP,0,0,0,0)を実行し、クリックの処理にしてやると最大化/最小化/閉じると言った本来の動作が実現 というのは、以下のようにコードを変更した時のことです。 SetCursorPos(pMs.X,pMs.Y); case WM_Msg of WM_LBUTTONDOWN:begin MOUSE_EVENT(MOUSEEVENTF_LEFTDOWN,0,0,0,0); MOUSE_EVENT(MOUSEEVENTF_LEFTUP,0,0,0,0); end; WM_LBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_LEFTUP,0,0,0,0); WM_RBUTTONDOWN: MOUSE_EVENT(MOUSEEVENTF_RIGHTDOWN,0,0,0,0); WM_RBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_RIGHTUP,0,0,0,0); WM_NCLBUTTONDOWN: MOUSE_EVENT(MOUSEEVENTF_LEFTDOWN,0,0,0,0); WM_NCLBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_LEFTUP,0,0,0,0); WM_NCRBUTTONDOWN: MOUSE_EVENT(MOUSEEVENTF_RIGHTDOWN,0,0,0,0); WM_NCRBUTTONUP: MOUSE_EVENT(MOUSEEVENTF_RIGHTUP,0,0,0,0); end; 上記のコード変更は、 1.操作元PCで左マウス押下フック 2.操作元PCから左マウス押下操作命令送信 3.操作先PCで左マウス押下操作命令受信 4.操作先PCで左マウス押下処理 5.操作元PCで左マウス押上フック 6.操作元PCから左マウス押上操作命令送信 7.操作先PCで左マウス押上操作命令受信 8.操作先PCで左マウス押上処理 といった流れを 1.操作元PCで左マウス押下フック 2.操作元PCから左マウス押下操作命令送信 3.操作先PCで左マウス押下操作命令受信 4.操作先PCで左マウス押下処理 5.操作先PCで左マウス押上処理 という流れに変更したということです。 そして、確認しているのは、この処理を実行するアプリケーションのシステムメニューで、変更前のコードでは、6.操作元PCから左マウス押上操作命令送信はしているのに、7.操作先PCで左マウス押上操作命令受信(Label表示で確認)ができていないということです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.