我有一个C#代码打开另一台服务器的RDP - iexplore.exe。
现在我必须向下滚动网页并拍摄其屏幕截图,但在每次滚动时,图像都需要一些时间来加载。因此,当我在每个滚动条上拍摄一个屏幕截图时,有时会保存已卸载的图像
在拍摄屏幕截图之前,我尝试了1秒的延迟,但它不是一个完整的证明解决方案。
是否还有其他方式/事件来检查网页/该部分是否已加载?
以下是我的代码:
IHTMLElement2 scroller = null;
if (currentSnapshot.IsFullPage)
{
scroller = GetScrolledElement(dimensions);
}
if (scroller != null)
{
originalScrollPosition = scroller.scrollTop; //here's where we started to begin with
maxScrollPosition = Math.Max(scroller.clientHeight, scroller.scrollHeight);
scroller.scrollTop = 0; //start at the top
}
var screen = SnapshotHelper.CaptureArea(dimensions);
images.Add(screen);
Thread.Sleep(1000);
Application.DoEvents();
谢谢
答案 0 :(得分:0)
我想象一下,有一些真实和实际的理由你需要通过RDP完成所有这些,并说它不能直接完成。话虽这么说,您可以使用Virtual Channel将与IE协调的远程端屏幕截图的结果传回RDP客户端。
Client opens RDP --RDP--> Server which runs service listening for virtual channel
答案 1 :(得分:0)
while (IEApp.Busy)
{
Thread.Sleep(1000);
Application.DoEvents();
}