3

我想在本地 Vista 机器上使用 PHP 截取屏幕截图。对于初学者,我只想设置标准示例:

$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);

当我运行脚本(命令行)时,它会打开两个 IE 窗口。一个(第一个)保持为空,第二个转到指定的 URL。截取并保存屏幕截图并关闭第一个窗口。转到 URL 的窗口保持打开状态。屏幕截图本身取自第一个空的 IE 窗口。

如何定位第二个窗口?

-- 编辑#1 -- 在 Breakthrough 的所有帮助之后,它仍然无法在我的系统上运行。:( 现在我将尝试使用:http: //iecapt.sourceforge.net/http://cutycapt.sourceforge.net/两者在初步测试期间似乎都有效。我仍然对一个“真正的”PHP 解决方案。

4

2 回答 2

0

您使用的是哪个版本的 IE(7 或 8)?

导航到页面设置 $browser 的 Visible 属性会发生什么?

-- 编辑回应评论 --

转到开始 -> 运行,然后输入“services.msc”

在列表中,确保服务器服务和远程过程调用 (RPC) 服务都设置为自动。此外,请确保将远程过程调用 (RPC) 定位器服务设置为手动...

试试看,让我们知道会发生什么。:)

-- 编辑 #2 --

在您的 php.ini 文件中,确保将 com.allow_dcom 设置为“1”。

于 2009-08-19T18:05:39.487 回答
0

对我来说也不起作用,但我设法让它工作,但不知道它是什么时候,我想这与来自交互式服务检测的消息有关,如果我点击查看消息并在 Internet Explorer 中做某事屏幕它得到了一次截图,总之就是一个大S***

于 2013-02-24T10:51:16.447 回答