C# 在屏幕c上未显示webcontrol的情况下捕获HTMLelement的视频
我正在尝试将一个获得url的应用程序变白,并找出所有html5画布广告。我发现iframes是我能得到的最好的HTMLElement,并拍摄该元素的视频截图 我必须呈现页面,因为它使用javascript调用使用内存中的webbrowser控件创建最终页面,然后在示例中找到webbrowser控件objDoc文档中的所有iframe。 var aColl=来自objDoc.Body.All中的HtmlElement p 其中Configuration.lstCanvas.Containsp.TagName.ToUpper 选择p; 对于每个元素,我必须捕获iframe内容的屏幕截图和视频,甚至是一个html文件,稍后可以表示视频 为了捕获图像,如果我将null传递给HtmleElement,我将使用以下代码获取全屏捕获,作为webbrowser控件的扩展方法C# 在屏幕c上未显示webcontrol的情况下捕获HTMLelement的视频,c#,html,video,iframe,webbrowser-control,C#,Html,Video,Iframe,Webbrowser Control,我正在尝试将一个获得url的应用程序变白,并找出所有html5画布广告。我发现iframes是我能得到的最好的HTMLElement,并拍摄该元素的视频截图 我必须呈现页面,因为它使用javascript调用使用内存中的webbrowser控件创建最终页面,然后在示例中找到webbrowser控件objDoc文档中的所有iframe。 var aColl=来自objDoc.Body.All中的HtmlElement p 其中Configuration.lstCanvas.Containsp.Ta
public static Image GetElementImage(this WebBrowser web, HtmlElement elm = null)
{
try
{
IHTMLDocument2 idoc2 = web.Document.DomDocument as IHTMLDocument2;
if (idoc2 == null)
{
return null;
}
IHTMLElementCollection elementCollection = idoc2.all;
if (elementCollection == null)
{
return null;
}
IHTMLElementRender iHTMLElementRender;
if (elm != null)
{
iHTMLElementRender = (IHTMLElementRender)elm.DomElement;
if (iHTMLElementRender == null)
{
return null;
}
}
else {
iHTMLElementRender = idoc2.body as IHTMLElementRender;
if (iHTMLElementRender == null)
{
return null;
}
}
// get the location and size of the element and create a bitmap
// need a different interface
IHTMLElement element = iHTMLElementRender as IHTMLElement;
if (element == null)
{
return null;
}
int elementWidth = element.offsetWidth;
int elementHeight = element.offsetHeight;
// Create a bitmap and render the element to it.
Bitmap memoryBitmap = new Bitmap(elementWidth, elementHeight, PixelFormat.Format24bppRgb);
Graphics memGraphics = Graphics.FromImage(memoryBitmap);
IntPtr memDC = memGraphics.GetHdc();
iHTMLElementRender.DrawToDC(memDC);
memGraphics.ReleaseHdc(memDC);
Image r = (Image)memoryBitmap.Clone();
memGraphics.Dispose();
memoryBitmap.Dispose();
return r;
}
catch // (Exception ex)
{
return null;
}
}
我还没有找到一种方法来拍摄这个元素的视频。
我试图将iframe的内容抓取为html,以便保存并用于后者,但我发现了一些问题:
url并不总是iframe的一个属性,它会从javascript中更改
跨域脚本不允许我对html进行编程
我下载的文件并不总是复制iframe的内容
你对获取html代码或视频有什么建议吗
提前谢谢