我想使用 PHP 在我的本地 Vista 计算机上抓取屏幕截图。 对于初学者来说,我只想设置标准示例:
$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-- 经过突破的所有帮助后,它仍然无法在我的系统上运行。 :( 现在我将尝试解决这个问题:http://iecapt.sourceforge.net/或http://cutycapt.sourceforge.net/这两者在初步测试中似乎都有效。 我仍然对“真正的”PHP 解决方案感兴趣。
最佳答案
您使用的是哪个版本的 IE(7 或 8)?
导航到该页面后设置 $browser 的 Visible 属性会发生什么?
-- 编辑评论--
转到“开始”->“运行”,然后输入“services.msc”
在列表中,确保服务器服务和远程过程调用 (RPC) 服务均设置为自动。另外,请确保远程过程调用 (RPC) 定位器服务设置为手动...
尝试一下并让我们知道会发生什么。 :)
-- 编辑#2--
在 php.ini 文件中,确保 com.allow_dcom 设置为“1”。
关于php - imagegrab 窗口打开两个窗口并抓取错误的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1301064/