私の知る限り、マウスの位置を取得する2つの方法は、ファイルを使用するlibgpm
か読み取ることです。ただし、後者は最後の位置からの相対位置/dev/input/mice
を返すだけです。だから私の質問は、読書や他の方法で絶対的なマウスの位置を取得するにはどうすればよいですか?/dev/input/mice
C
そして、私はこの関数をまたはで実装したいと思いC++
ます。どんな情報でもありがたいです。
まず、マウス デバイスはおそらく相対的な動きしか送信していないため、動きを統合する以外に、絶対位置を取得する方法はありません (手でマウスを持ち上げて別の場所に置いてみてください)。
また、ほとんどすべての Linux GUI 環境はX11より上にあるため、マウスを処理するのは X11 サーバー (通常はXorg
プロセス) です (実際に を読み取るプロセスはこれだけです/dev/input/mice
) 。
次に、X11 クライアント アプリケーションを作成する必要があります。これとその質問を参照してください。ただし、Qt や GTK などの既存のツールキット ライブラリを使用する方がはるかに優れています。たとえば、Qt のQMouseEvent & QWidget::mouseMoveEvent 、Gtkの GtkWidget "motion-notify-event" シグナル(および他の多くの関数) を参照してください。
この質問も参照してください