我有一个程序,我必须从正在运行的IE8进程中获取SHDocVw.InternetExplorer实例.要获取实例,下面的示例代码将运行.出于某种原因,没有Thread.Sleep它将无法工作.
如果删除了Thread.Sleep,则Browser.HWND会为m_IEFoundBrowsers中的所有实例抛出InvalidCastException.使用Thread.Sleep时,它适用于IE8窗口.
有没有人知道如何以不使用Thread.Sleep的方式执行此操作?(我不喜欢使用睡眠功能,通常只是将问题推向未来......)
示例代码:
InternetExplorer m_IEBrowser = null;
ShellWindows m_IEFoundBrowsers = new ShellWindowsClass();
Thread.Sleep(10);
foreach (InternetExplorer Browser in m_IEFoundBrowsers)
{
try
{
if (Browser.HWND == (int)m_Proc.MainWindowHandle)
{
m_IEBrowser = Browser;
break;
}
}
catch(InvalidCastException ice)
{
//Do nothing. Browser.HWND could not execute for this item.
}
}
Run Code Online (Sandbox Code Playgroud)