3

のような標準のWindowsAPI関数を使用してJavaキャンバスからテキストをキャプチャすることは不可能なので、そのようなJavaキャンバス内にメソッドをフックして、実際にキャンバスに描画される前にテキストをキャプチャする方法GetMessage()があるかどうか疑問に思いました。drawText()誰かがこれを解決する方法を知っていますか?Javaで書かれたソリューションも受け入れられます。どんな提案でもいいでしょう、ありがとう。

編集:外国のキャンバスハンドルを盗んで自分のキャンバスに設定することは可能ですか?したがって、外国のアプリケーションは、もはやそのキャンバスに描画するのではなく、私のなりすましのアプリケーションに描画します。このようにdrawText()して、アプリケーションでメソッドを簡単にオーバーライドできます。

4

2 に答える 2

1

Java インストルメンテーションを使用して、コードを drawString() に挿入します (Javassist など)。

ここからのコードを組み合わせてコードを挿入しinsertBeforeそこでpremainメソッドの変換をアクティブ化できます。

于 2011-12-30T22:45:22.167 に答える
0

独自のサブクラスを作成Graphics2Dし、その上で描画を行うのは簡単です。サブクラスをオーバーライドdrawString()して、好きなことを行うことができます。サブクラスを使用して画面に直接書き込むことができるため、すべてのメソッド呼び出しをコンストラクター引数として指定された別のインスタンスに転送するラッパーとして実装を作成する可能性があります。create()もちろん、サブクラスの新しいインスタンスを返すように実装してください。

于 2011-12-22T14:25:52.117 に答える