1

私は Qt で単純なボットを作成しようとしています。そのため、Qt アプリケーション自体の外側でキーボードの押下をシミュレートする方法が必要です。

「古い」keybd_eventを使用してこれを可能にしました

keybd_event(Qt::Key_A,0,0, 0); // Pressing the 'A-button"

そしてそれはうまくいきます。しかし、一度に 2 つのボタンを押す必要がある「すべて選択」コマンドを実行しようとすると、それができません。

Google で問題を調査したところ、「この関数 (keybd_event) は置き換えられました代わりに SendInput を使用してください。

現在の問題は、Windows API、特に「Qt」のコンテキストについてほとんど知識がなく、開始方法についてのガイダンスが必要なことです。

4

1 に答える 1

1

keybd_event実際にはQt関数ではありませんが、WindowsApiの一部です。

両方ともkeybd_eventプレスイベントとリリースSendInputイベントを送信できます。組み合わせを送信する場合は、次のようにイベントを送信する必要があります。ctrl+A

press Ctrl -> press A -> release A -> release Ctrl

を使用する場合はkeybd_event、その後4回呼び出す必要があります。を使用する場合はSendInput、4つのイベントの配列を作成できます。

キーボードイベントをシミュレートするには、Windows APIのキーボードコードを使用する必要がありますが、QtのコードはMicrosoftのコードと一致する場合があります。

また、このソリューションはWindowsが指定したQtとは何の関係もないことを理解する必要があります。

必要なドキュメントへのリンクがすべて見つかりました。問題が発生した場合は、それを調べて、より具体的な質問をする必要があると思います。

于 2012-01-21T15:44:07.563 に答える