c++ - アプリケーションにフォーカスがない場合のキープレスの検出

原文 c++ qt

トレイに常駐するアプリケーションがあり、特定のタスクを実行できるようにユーザーアクティビティを検出する必要があります。 Windowsの場合、GetAsyncKeyStateまたはSetWindowsHookExを使用できることはわかっていますが、クロスプラットフォームのソリューションが必要です。

誰かがこれに対する解決策を持っていますか?たぶんkeyPressEventの再実装?または、いくつかのマクロをセットアップして個別に行う方が簡単でしょうか?
答え
これは本質的にプラットフォーム固有です。

私はあなたが何をするかを分離し、イベントをキャプチャしてキーストロークを記録するメカニズムをそれらのキーストロークの消費から分離することを確認します。そうすれば、各プラットフォームにキャプチャ/レコードメカニズムを実装するだけでよく、他のすべてのコードはかなり移植性が高いはずです。

SDLがここで行ったことを確認してください。 http://www.libsdl.org/

彼らは、キーボードだけでなく、そのようなことすべてを抽象化することに成功しました。
関連記事

c++ - BOOST ASIO:Windowsで「bind:Address already in use」を取得しないのはなぜですか(ただし、Linuxで取得します)?

c++ - ビル印刷ジョブ

c++ - 文字列ストリームからファイルにデータを書き込む方法(CPP)

c++ - utf 8の2つの文字列の比較が正しくないのはなぜですか?

c++ - 十分に文書化されたオープンソースおよび高速C / C++画像操作ライブラリ。 「サイズ変更」のように、回転、色の変更、切り抜き[終了]

c++ - 重複するQGraphicsItem-sホバーイベント

c++ - 数値データをchar *にシリアル化する方法

c++ - コンパイラがサポートしているISO C++標準のバージョンを確認するにはどうすればよいですか? [重複]

c++ - ラッパークラスの静的初期化子リスト

c++ - 1つのQRadioButtonをいくつかのQButtonGroupsにグループ化する