PrintWindow関数で特定のウィンドウをキャプチャするコードがあります。具体的には、ブラウザでWebページを取得します。このコードはスタンドアロンのWindowsアプリケーションでテストされていますが、問題なく動作します。同じコードがNPAPIプラグインに組み込まれ、Google Chromeに読み込まれます。問題が発生します。 Chromeにタブが1つしかない場合、コードは正常に機能します。 Chromeに2つのタブがある場合、コードは予想されるサイズのブラックボックスを返します。同じウィンドウハンドル(Chrome_RenderWidgetHostHWND)で、スタンドアロンアプリケーションとプラグインを同時にテストしました。アプリケーションは常に動作しますが、複数のタブがブラウザで開いている場合、プラグインは常に失敗します。PrintWindowはスタンドアロンアプリケーションで動作し、NPAPIプラグインで部分的に動作します
私が本当に感謝します、誰かがこれを修正する手掛かりを与える場合。
ありがとうございます。
NB。ウインドウをキャプチャする他の方法は、私のユースケースのさらに大きな欠点のために適用できません。
Chromeが低レベルのモードでプラグインを起動しているかどうかを確認することはこれまで可能ではありませんでした。私は周囲に浮かんでいるたくさんの噂を見てきましたが、それが明記されている具体的な場所を見つけることができず、クローム・プラグインに問題があったわけでもありません。 – taxilian
同じウィンドウでコードをテストします(すべてのChrome_RenderWidgetHostHWNDのハンドルが記録されますので、プラグインとアプリケーションでキャプチャします)。残念ながら、キャプチャされたタブと同じプロセスにプラグインがロードされることは保証できません。あなたが知っているように、Chromeは最初からすべてのタブで2つ以上のプロセスを作成しますが、プラグインは1度だけ読み込まれます(ページには挿入されず、独自の背景ページにあります)。しかし、スタンドアロンアプリも別のプロセスであり、動作することに注意してください。だからまだ私の謎です。 – Stan
@タクシリアン:このドキュメントでは、Chromeで使用されるサンドボックスモデルの低完全性ビットの使用について説明します。http://dev.chromium.org/developers/design-documents/sandbox –