【发布时间】:2016-06-15 14:43:04
【问题描述】:
我正在启动 Internet Explorer 进程。问题是它在 p.MainWindowHandle 中总是返回零。 我的目标是获取 mainwindowHandler 并最小化刚刚启动的特定窗口。相同的代码适用于 chrome 浏览器。但在 Internet Explorer 中它不起作用。 我的代码如下。
Process p = Process.Start("IEXPLORE.EXE", "www.google.com");
ShowWindow(p.MainWindowHandle, 2);
ShowWindow 是一个调整窗口大小的方法。
【问题讨论】:
-
复制stackoverflow.com/questions/16185217/…快捷方式:在查看MainWindowHandle之前调用Refresh()方法
-
如果要创建具有最小化窗口的进程,更好的方法是使用
ProcessStartInfo.WindowStyle。事实上,MSDN 示例恰好使用了iexplore.exe。 -
我已经调用了刷新方法,但问题仍然存在。
-
p.Refresh(); IntPtr ptr = p.MainWindowHandle;
-
浏览器初始化和创建窗口当然需要时间。您至少必须使用 p.WaitForInputIdle()。但这还不够,您必须循环直到获得非零值。每次尝试后都睡一会儿,不要永远循环。
标签: c#