【发布时间】:2019-11-01 01:37:56
【问题描述】:
我希望能够以隐藏状态从 c# WPF 应用程序启动 IE。 以下代码可以正确启动 IE,但并未隐藏。 它似乎忽略了隐藏标志。 我该如何解决?
proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
string IEKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE";
proc.StartInfo.FileName = Microsoft.Win32.Registry.GetValue(IEKey, "Path", "").ToString().TrimEnd(';') + @"\iexplore.exe";
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
proc.StartInfo.Arguments = url;
proc.Start();
proc.WaitForInputIdle();
【问题讨论】:
-
你不能使用真正的无头浏览器吗?
-
@Alexei Levenkov WebBrowser 控件未正确处理复杂的重定向和 Javascript。标准 IE 现在运行良好,但我需要将其隐藏,或者以某种方式显示在屏幕外而不闪烁。
-
这并不能解释为什么你不能使用真正的无头浏览器所以......我会尝试自动化而不是docs.microsoft.com/en-us/previous-versions/windows/…
-
感谢您的建议。我刚刚尝试了自动化。我使用的目标 URL 具有重定向。 OnNavigateComplete2 事件在带有由 javascript 自动提交的表单的页面上调用。那时页面还不完整。退出事件处理程序后,IE 将完全呈现。是否有空闲时会调用的事件?
-
出于测试目的,尝试设置 proc.StartInfo.UseShellExecute=false 并在其下方添加此行。 proc.StartInfo.CreateNoWindow = true;让我们知道您的测试结果。
标签: c# internet-explorer process