【问题标题】:Launch IE Process as Hidden以隐藏方式启动 IE 进程
【发布时间】: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


【解决方案1】:

我尝试进一步搜索此问题并获得了此信息。

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

参考:Open and Hide Default Web Browser

【讨论】:

    猜你喜欢
    • 2010-09-05
    • 1970-01-01
    • 2011-10-14
    • 2011-12-29
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2012-11-30
    相关资源
    最近更新 更多