4

私は Java のバックグラウンドを持っているため、C# と C++ に関しては限られた知識しかありません。基本的に、画面に表示されている別のアプリケーションからテキストを「読み取ろう」としています...

ここに画像の説明を入力

具体的には、Pokerstars からのディーラー チャット メッセージをその場で読みたいのですが...

このテキストをその場で Java プログラムに読み込む最良の方法は何ですか? APIフックについて頭を悩ませていますが、これが唯一の方法であり、Javaでこれを行うにはどうすればよいですか?

ありがとうフィル

4

2 に答える 2

2

フックしたいアプリケーションがc#の場合は、リフレクターから始めるのがよいでしょう。

http://reflector.red-gate.com/download.aspx?TreatAsUpdate=1

調べたいもう1つのことは、ネットワークトラフィックを読み取り、そのレベルでデータを取得することです。その場合は、wiresharkを見てください。

http://www.wireshark.org/

プロキシを作成できる場合があります。このプロキシでは、データがネットワークレベルでアプリケーションを介して送信され、データを渡しますが、興味深い部分を読み取ります。

幸運を。

于 2011-04-25T20:59:57.307 に答える
2

これを行う1つの方法は、画像のように、テキストがアンチエイリアス処理されていない限り機能します。

アプリケーションから、他のアプリケーションのウィンドウのスクリーンショットを撮ります。スクリーンショットで白以外のすべてのピクセルを検索します。白以外のすべてのピクセルのリストを作成します。リスト内の非白ピクセルの各ペアについて、ペアが互いに接触している場合は、それらを同じ「グループ」に入れます。すべてのピクセルがグループ化されるまでこれを行います。

次に、グループごとに、その形状を事前定義された形状のテーブルと比較します。図形がテーブルにない場合は、ユーザーに文字を入力してもらい、図形とその文字をテーブルに保存します。

これで、ウィンドウ内のすべての文字のASCIIコードができました。

これはウィンドウからテキストをこすり取る最もクリーンな方法ではありませんが、打ち負かすことは困難です。他のアプリケーションがテキストをコンピュータで読みにくくするために行う動きは、人間が読みにくくなり、アプリケーションの有用性が低下します。

于 2011-04-25T21:13:52.403 に答える