みなさんこんにちは。MouseInputsとKeyInputsの違いは何ですか(前景を取得するには)
SendInputsでキーを送信するだけで、ウィンドウをフォアグラウンドにするためにSetForegroundWindow()
を呼び出す必要があります。これは問題なく動作します。
これで、マウス入力で同じ手順を適用することができるようになりました。しかし、これは不可能でした。まず、関数AttachThreadInput()
を使用して、ウィンドウを実際にフォアグラウンドにする必要がありました。
キーで簡単に動作するのは非常に分かりませんが、マウスで行うのは面倒です。誰かがなぜこれがそうだと簡単に私に説明することができますか?
申し訳ありませんがタイトルと悪い英語、残念ながら、他の言葉は私に起こっていません。
コードが多すぎるため、私は自分の質問に関連性を示しています。
キー:
if(SetForegroundWindow(window[id]))
{
//SENDINPUT for key, works without any problems. (Not with Mouse)
}
マウス:両方がキーの例のように動作していない理由
AttachThreadInput(dwCurID, dwMyID, TRUE);
SetWindowPos(window, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
SetWindowPos(window, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
SetForegroundWindow(window);
AttachThreadInput(dwCurID, dwMyID, FALSE);
//The Window is now on foreground, now use SendInput for Mouse. This way works
だから私は本当に不思議。だから、私が知っている理由は、ウィンドウが実際にはフォアグラウンドにないからで、これはMouseInputsにとって必要です。 Keyeventsにとってもそれが必要であると思うかもしれません。それで私の混乱。
幸せな一日をお祈りします!
適切なヘルプが必要な場合は、実際のコード、予想される結果、実際の結果を表示する必要があります。 –