我正在使用浏览器的图像生成,但是这样做我正在以窗体形式从代码中获取浏览器的快照。但如果浏览器未在特定时间内加载(假设为15秒),则会出现空白快照。任何人都可以帮助我。
答案 0 :(得分:3)
我不完全确定我是否理解你正在尝试做什么,但我会对它进行一次尝试:听起来你正试图打开任何程序被设置为用户的默认Web浏览器,然后执行BitBlt
之类的操作来截取它。
然而,正如您所注意到的,很难等待预定义的时间间隔并且希望浏览器已完全加载。相反,你可以在运行进程后尝试WaitForIdleInput
之类的东西,这将暂停线程的执行,直到进程完成初始化并且空闲(等待用户输入)。这应该允许浏览器在继续拍摄快照之前完成加载。
类似以下代码:
//start the web browser
System.Diagnostics.Process proc = System.Diagnostics.Process.Start("iexplore.exe");
//wait for it to completely finish loading
proc.WaitForInputIdle();
//take your screenshot, or whatever
//...