別のプログラムの指定されたウィンドウにマウスクリックメッセージを送信したいと思います。私は現在WM_LBUTTONUP
とWM_LBUTTONDOWN
のメッセージを使用しています。C++でマウスボタンがスワップされているかどうか確認してください
これらのメッセージは、ユーザーのマウスボタンの設定に関係なく、まったく同じ方法で実行されます。これとは反対に、ユーザーがマウス設定のコントロールパネルからマウスボタンを入れ替えたかどうかを知りたい。
SwapMouseButton
機能を調査して見つけましたが、正常に機能しますが、マウスボタンを実際に交換する必要はなく、以前にスワップされているかどうかを知りたいだけです。 MSDNから
:
関数が呼び出された前に、マウスボタンの意味は、以前に逆転した場合には、戻り値がゼロ以外です。
このようにしたい情報を取得できますが、マウスボタンの元の状態に戻します。私は元の状態に戻っていないことを確認したいだけです。
ように私は現在、この関数を呼び出す:私は唯一のマウスボタンが予めユーザによって交換されたかどうか(も復元しない)をチェックするために、他の代替方法(SystemParametersInfo
のようなもの)を知りたい
SwapMouseButton(FALSE);
。
基本的には、マウスの主要なボタンのクリックをシミュレートし、ユーザーのマウスボタンの意味に従ってセカンダリのマウスボタンのクリックをシミュレートします。
例えば、主なマウスボタンのクリックをシミュレートしたときに、ユーザーがマウスボタンをスワップした場合は、通常のようにマウスの右クリックをシミュレートする必要があります。私が欲しいことをするために、WM_PRIMARY...
とWM_SECONDARY...
と呼ばれるメッセージはありません。
ありがとうございます。
あなたは間違った質問をしました。間違った解決策が必要です。 [PostMessageでキーボード入力をシミュレートすることはできません](https://blogs.msdn.microsoft.com/oldnewthing/20050530-11/?p=35513)(マウス入力にも同じ基本原則が適用されます)。 *「UIを自動化するにはどうすればよいですか?」*その質問に対する答えは次のとおりです。「UIオートメーションを使用する(https://msdn.microsoft.com/en-us/library/)」 windows/desktop/ee684009.aspx) "*これの利点の1つは、ユーザーのローカルマウスボタンの設定を知る必要がないことです。 – IInspectable
@IInspectableありがとう! 'PostMessage'を削除します。あなたが提供したリンクは非常に便利です。 :-) – GTAVLover