0

現在、ある種の動的ローディング ライブラリ プラグインの開発に取り組んでいます。プラグインは他のアプリケーションによってロードされます。プログラミング言語はC++です。

MacOSX や Linux などの Unix で実行時にマウス ボタンの状態を検出する必要があります。アプリケーションでマウスの左ボタンが現在保持されているか離されているかどうかを言います。アプリケーション自体は、ライブラリがそうできるようにする機能を提供していません。Windows ではマウス フックを使用してそれをキャプチャしますが、Unix システムでは答えが見つかりませんでした。

4

1 に答える 1

0

ホストアプリケーションがコンピューターのGUIと対話するためにどのような方法を使用しているかについてはまだ述べていません。生のX11?GTK +(とりわけGnomeアプリケーションで使用される)やQt(とりわけKDEアプリケーションで使用される)のようなツールキット?MacOSの場合、ホストアプリケーションはネイティブGUIまたはX11を使用していますか?実際、ホストアプリケーションにGUIがあると想定できるかどうかさえ、はっきりしていません。

ホストアプリケーションがツールキットを使用していて、それがどのツールキットであるかがわかっている場合は、ツールキットが提供する機能を使用してマウスイベントを取得する必要があります。

ホストアプリケーションがGUIに対して何をしているのかわからない場合、またはGUIがある場合でも、いつでもX11をバイパスしてマウスに直接アクセスできますが、これには大きな注意点があります。アクセスしているかどうかをどのように知ることができますか。正しいマウス?ホストホストアプリケーションがリモートX11ディスプレイで実行されている可能性があること、またはSSH接続を介して一部のリモートマシンで実行されている非GUIアプリケーションである可能性があることに注意してください。アプリケーションを実行しているコンピューターにマウスが接続されていますか(ある場合でも!)、本当に必要なマウスですか?

それでもこのアプローチを続行したい場合は、Linuxで仮想デバイスを開くことができます...またはまたはなど/dev/input/miceを使用して特定のマウスを開くことができます...このデバイスから読み取ると、PS/2形式のデータが得られます。/dev/input/mouse0/dev/input/mouse1

于 2012-05-02T15:34:50.107 に答える