2009-08-19 8 views
3

私は、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ソリューションに興味を持っています

答えて

0

IEのバージョンは何です:。:( は、今の私がそれを仕事にしようとするつもりです。あなたは、(7,8)を使用して

ページに移動後$ブラウザのVisibleプロパティを設定するとどうなり

- ?コメントに反応してEDIT -

ゴーへスタート - >実行し、「services.msc」と入力します。

一覧で、サーバーサービスとリモートプロシージャコール(RPC)サービスが両方とも自動に設定されていることを確認します。また、リモートプロシージャコール(RPC)ロケータサービスが手動に設定されていることを確認してください。

これを試してみてください。 :)

- EDIT#2 - php.iniファイルで

は、てcom.allow_dcomが "1" に設定されていることを確認してください。

+0

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

+0

スタート→実行を選択し、 services.msc " 一覧で、サーバーサービスとリモートプロシージャコール(RPC)サービスが両方とも自動に設定されていることを確認します。また、リモートプロシージャコール(RPC)ロケータサービスが手動に設定されていることを確認してください。 これを試して、何が起こるかお知らせください。 :) – Breakthrough

+0

私の設定は、あなたが記述した通りにすでに設定されています。変更は必要ありません。まだ同じエラーが発生しています。 – Joseph

0

私にとっても動作しませんが、動作するように管理されていましたが、いつメッセージが表示されたら対話型Serivces Detectionから出てくるメッセージと関係しているのでしょうか?インターネットエクスプローラ画面の何かが一度だけスクリーンショットを撮った、すべてが1つ大きなS ***

関連する問題