私はかなりのジレンマに直面しています。DLLを他のプロセスに挿入し、そこからいくつかのWinAPI呼び出し、具体的にはExtTextOutW @ GDI32、DrawTextExW @ GDI32、AlphaBlend@Msimg32をフックしました。さて、問題は、他のアプリケーションがこれら2つのGDI32関数を使用して何かを書き込んだときに、それが表示される正確な場所がわからないことです。これは、テキストを含むDCがAlphaBlendで処理され、最終的にウィンドウのDCに配置されるためです。
では、どうすれば特定のHDCを追跡できますか?擬似コードでは、他のアプリケーションが画面にテキストを描画する方法は次のとおりです。
HDC h = DrawTextW("STRING")
Do something with h. The "STRING" gets new HDC, say h2.
Pass h2 to AlphaBlend, which draws it to the screen.
私が言ったように、AlphaBlendの前にストリングが新しいDCを取得するので、元のhでトラックを失います。任意のアイデア、特定の文字列を含むh> h2から接続を確立するにはどうすればよいですか?
問題をきちんと説明できたかどうかわかりませんが、ご不明な点がございましたらお問い合わせください...