私は、PHPとローカルのVistaマシンでスクリーンショットを取得したいと考えています。imagegrabwindowは2つのウィンドウを開き、間違ったスクリーンショットを取得します
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.libgd.org");
/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
私は、スクリプト(コマンドライン)を実行し、それが2つのIEウィンドウを開きます: は、まず第一に、私はちょうどセットアップ標準の例を取得したいです。 1つ(最初のもの)は空のままで、2番目のものは指定されたURLに移動します。スクリーンショットが取得され、保存され、最初のウィンドウが閉じられます。 URLに行ったウィンドウは開いたままです。最初の空のIEウィンドウから取得したスクリーンショットです。
2番目のウィンドウをどのようにターゲットできますか?
- EDIT#1 - ブレークスルーの助けを借りても、私のシステムではまだ動作しません。 予備試験中に動作するようには思えたの両方http://iecapt.sourceforge.net/またはhttp://cutycapt.sourceforge.net/私はまだ「本物の」PHPソリューションに興味を持っています
IE:7.0.6001.18000 移動後に表示を移動すると、1つのブラウザウィンドウしか開きません。スクリーンショットが作成されず、エラーが表示されます(上の例に一致するように行番号が編集されています)。 PHP致命的なエラー:「エラー[0x800706ba] RPC-Serverが利用できません」というメッセージで未知の例外 'com_exception' test.php:6 スタックトレース: #0 test.php(6):unknown() #1 {main} 6行目のtest.phpでスローされました – Joseph
スタート→実行を選択し、 services.msc " 一覧で、サーバーサービスとリモートプロシージャコール(RPC)サービスが両方とも自動に設定されていることを確認します。また、リモートプロシージャコール(RPC)ロケータサービスが手動に設定されていることを確認してください。 これを試して、何が起こるかお知らせください。 :) – Breakthrough
私の設定は、あなたが記述した通りにすでに設定されています。変更は必要ありません。まだ同じエラーが発生しています。 – Joseph