php - imagegrab 窗口打开两个窗口并抓取错误的屏幕截图

标签 php screenshot

我想使用 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/

相关文章:

php - 如何在php和javascript下实现一个自动登录系统?

php - 连接表并显示结果 [Laravel 5]

c++ - Windows GetDIBits 不返回预期值

android - Andengine MotionStreak示例及截图

php - 通过 PHP header 或 HTML 元 http-equiv 发送文档信息?

php - 获取不同变量中相同 id 的多行

screenshot - node-webkit 或 atom-shell 可以截取整个桌面屏幕吗?

c# - WPF:截取屏幕截图的方法

javascript - 打印您的网页屏幕并发送带有打印图像的电子邮件

php - 您如何在PHP中解析和处理HTML/XML?