C# 以隐藏的方式启动IE进程

C# 以隐藏的方式启动IE进程,c#,internet-explorer,process,C#,Internet Explorer,Process,我希望能够从c#WPF应用程序启动IE作为隐藏。 下面的代码正确地启动了IE,但没有隐藏。 它似乎忽略了隐藏的标志。 我怎样才能解决这个问题 proc = new System.Diagnostics.Process(); proc.EnableRaisingEvents = false; string IEKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curre

我希望能够从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();

我试图进一步搜索这个问题,我得到了这个信息

无法隐藏已启动的web浏览器窗口(如Internet) 通过使用“Process.Start”方法从常规 窗口应用程序。如果我们从windows启动web浏览器 服务,默认情况下,windows服务不包含桌面, 因此,无法显示任何窗口


Ref:

你不能使用真正的无头浏览器吗?@Alexei Levenkov WebBrowser控件没有正确处理复杂的重定向和Javascript。标准IE现在运行良好,但我需要隐藏它,或者以某种方式在屏幕外显示而不闪烁。这并不能解释为什么你不能使用真正的无头浏览器,所以。。。我想试试自动化,谢谢你的建议。我刚才试过自动化。我使用的目标URL具有重定向。在带有javascript自动提交的表单的页面上调用OnNavigateComplete2事件。此时页面还不完整。退出事件处理程序后,IE将完全呈现。是否存在空闲时将调用的事件?出于测试目的,请尝试设置proc.StartInfo.UseShellExecute=false并在其下方添加此行。proc.StartInfo.CreateNoWindow=true;让我们知道你的测试结果。