我想使用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 - 在Breakthrough的所有帮助之后,它仍然无法在我的系统上运行。 :( 现在我将尝试使用:http://iecapt.sourceforge.net/或http://cutycapt.sourceforge.net/来完成它们,这两个似乎在初步测试期间都有效。 我仍然对“真正的”PHP解决方案感兴趣。
答案 0 :(得分:0)
您使用的是哪个版本的IE(7或8)?
在导航到页面后设置$ browser 的Visible属性会发生什么?
- 编辑回应评论 -
转到开始 - >运行,然后输入“services.msc”
在列表中,确保将服务器服务和远程过程调用(RPC)服务都设置为自动。此外,请确保将远程过程调用(RPC)定位器服务设置为手动...
试一下,让我们知道会发生什么。 :)
- 编辑#2 -
在php.ini文件中,确保将com.allow_dcom设置为“1”。
答案 1 :(得分:0)
对我来说也不起作用,但我设法让它工作但不知道它是什么时候,我想它与交互式Serivces Detection产生的那条消息有关,如果我点击查看消息并做某事在互联网资源管理器屏幕上它有一次截图,一切都在一个大S ***