1

Python でのユーザーのコンピューターの使用に関する情報を取得するための簡単な API を探しています。

関連するもの:

  • キープレス、マウス イベント [PyKeylogger?] # SO で既に議論されていることは知っています
  • 実行中のプロセスに関する情報を把握する
  • もっと難しく、フォーカスのあるウィンドウに関する情報を知る (その名前?) # 本当に興味深いでしょう
  • さらに難しいことに、システムにさらに多くの情報を求めることはできますか? (たとえば、このウィンドウの特定のグラフィック要素に表示されるテキストについてクエリを実行してもよいですか?それがブラウザだとすると、現在の URL を取得できますか?)

Linux システムに関する回答を希望しますが、より簡単であれば Windows の代替手段にも興味があります。携帯性は今のところあまり気になりません。

Linux では、シェル スクリプトを実行して出力を取得するというフォールバックがあると思いますが、これが一般的な方法なのか、それともいくつかの API が既にうまくラップされているのかを知りたいです。

質問が曖昧で申し訳ありませんが、特定の API で簡単に取得できる情報の範囲を評価し、この種の作業でどのツールが「通常」であるかを知りたいのは私です。

あらゆる情報をお寄せいただきありがとうございます。

4

1 に答える 1

3

質問はかなり広いので、それほどあいまいではありません。あなたが探している情報のほとんどは、(あなた自身が指摘したように) SO に関するさまざまな質問に広がっています。

私は、作成しようと考えていた生産性追跡アプリケーションのために、このテーマについていくつかの調査を行いました。一般的なアドバイスは次のとおりです。

  • ウィンドウに関する情報 (タイトル、状態など) を監視および照会するには、libwnckを参照してください (python-wnck を参照)。WnckScreenオブジェクトの作成時に X サーバーから取得した情報がなく、画面にワークスペースやウィンドウがないように見えることに注意してください(詳細はこちら)。

  • 場合によっては、実行中のプロセスのエントリを照会することで、実行中のプロセスに関する有用な情報を取得できる場合があります/proc( psutilモジュールを参照することをお勧めします)。ただし、そうではない可能性が高くなります (探しているものによって異なります)。

  • アプリケーションに関する非常に具体的な情報を照会するには、その特定のアプリケーションがサポートするものを確認する必要があります。

    Linux アプリケーションでは、D-Bus サービスを使用して関連する内部機能を公開する傾向があります。

    たとえば、トーテムには、再生中のものを監視するために使用できるメインのトーテム オブジェクトを本質的に公開する D-Bus サービスあります。現在アクティブなタブなどを照会するために使用できます。

    Firefox は、この点で少し変わっています。D-Bus サービスを公開するために、長年にわたってさまざまな取り組みが行われてきましたが、何らかの理由で、これらの取り組みはどこにも行っていないようです。あなたの最善の策は、「Firefox やその他の Mozilla ベースのアプリケーションを内部からプログラムできるようにする」MozReplを見ることです(これは、telnet 経由で対話型シェルを公開します)。

  • 個々のコントロール/ウィジェットを照会するための一般的なアプローチについて。Linux では、Parasiteしか知りません。Firebug を使用したことがある場合は、そのようなものですが、GTK+ アプリケーション用です。ただし、ユースケースのシナリオで非常に役立つとは思えません。

    また、支援技術のサポート (スクリーン リーダーなど) を (ab) 使用することもできます。この回答を参照してください。私自身、これについては経験がありません。

ご不明な点がございましたら、お気軽にこの回答にコメントを残してください。

于 2011-06-18T01:53:32.390 に答える