试了多种方法依然没有截屏IE成功,人都瘦了!

wqvbka123 wqvbka123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人试了多种方法截IE依然不成功,现在采用的方法是注入IE内部调用如何下方法 应该不存在跨进程问题了,该获得的都获得了,但是截的屏蔽是黑屏幕


ImageRender ir;
if (ir.CreateImage((int)cx, (int)cy))
{
HDC renderDC = ir.GetDC();
HDC BrowserDC = GetDC(hwnd); //这是IE窗口的句柄
RECTL rectl;
rectl.top = 0;
rectl.left = 0;
rectl.right = cx;
rectl.bottom = cy;

OutputDebugText("CreateImage成功");
if (renderDC != NULL)
{
DVASPECTINFO info;
info.cb = sizeof(info);
info.dwFlags = DVASPECTINFOFLAG_CANOPTIMIZE;
// draw screen snapshot.
//两种调用方法均不成功
hr = spViewObject->Draw(DVASPECT_CONTENT,-1,
&info,NULL,NULL,renderDC,&rectl,&rectl,NULL,0); //这是mic_lee2000提供的方法

//spViewObject->Draw(DVASPECT_CONTENT, 1,
NULL, NULL, BrowserDC, renderDC,
&rectl, NULL, NULL, 0);//这种方法CHtmlView中可以成功
ir.ReleaseDC();

OutputDebugText("创建磁盘文件");

if (!ir.SaveToFile(L"c:\\a1.jpg", &jpegClsid))
{
OutputDebugText(_T("Unable to save the JPEG image."));
return FALSE;
}
}
}


解决此问题另赠200分
谢谢你们啦!
...全文
评论 16
收藏 已收藏
分享
返回顶部
wqvbka123
ATL 3,248 成员 48,530 内容