2

私はYakuakeのクローンに取り組んでいます。これを使用したことがあれば、その機能の 1 つが簡単にフォーカスを盗むことができることを知っているでしょう。

基本的に、「表示」ホットキーを押すと、アプリが表示され、書き込みが可能になります。どんなアプリでも何でもできますが(ヤクアケが隠されています)、ホットキーを押すとすぐにヤクアケが現れてフォーカスを奪います。アプリで同じことをしたい。

アプリケーションがこれを行うのを妨げるいくつかのウィンドウ マネージャーのルールがあることは知っていますが、Yakuake はそれを行っているのに、なぜ私はそれができないのでしょうか?

また、このアプリケーションは、Windows、Linux、および Mac と互換性があることを意図しているため、KDE ​​や Gnome や < insert_your_favourite_window_manager_here > ハッキングはありません。私は WM を検出してハックする方法には行きません。

PS: 私は C++ と Qt4 でそのアプリをやっています。

編集:

明確にするために、コードを求めているわけではありません(ただし、実際に例があれば、感謝します)。私はそれを行う方法を求めています。WM にアプリにフォーカスを割り当てるにはどうすればよいですか。そうするための標準的な方法はありますか?

4

3 に答える 3

1

...がありQt::WindowStaysOnTopHintます。

于 2012-10-26T10:23:50.237 に答える
1

解決策は思ったより簡単です。持続時間が 0 のアニメーションを作成し、アニメーションの最後にフォーカスを合わせました。これでうまくいきました。

于 2012-11-26T11:30:07.520 に答える
0

「表示」ホットキーまたはショートカットを使用する場合は、キーボードにフックを作成して使用する必要があります。

Qt はそのようなものを提供していないので、自分で行う必要があります。

この投稿を見ることができます:QTバックグラウンドプロセス

他のOSはわかりません。

フックから適切なキーボード イベントを取得したら、「allwas on top ヒント」を含むウィンドウを作成できます。これで問題ありません。

于 2012-11-06T17:04:52.317 に答える