小编Håk*_*son的帖子

我不想在SHDocVw.ShellWindows中使用Thread.Sleep

我有一个程序,我必须从正在运行的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)

c# winapi internet-explorer

4
推荐指数
1
解决办法
1188
查看次数

标签 统计

c# ×1

internet-explorer ×1

winapi ×1