gpt4 book ai didi

c# - Process.Start ("IEXPLORE.EXE") 在启动后立即触发 Exited 事件。为什么?

转载 作者:可可西里 更新时间:2023-11-01 08:35:29 25 4
gpt4 key购买 nike

我在 xp 中安装 IE8 时遇到一个奇怪的问题。我试图在 c# 中使用 System.Diagnostics.Process.Start 方法启动 IE。我需要捕获 IE 的退出事件并进行一些操作。但我最终遇到了一个相当奇怪的问题,即 IE 在启动后立即触发 exited 事件。

这是示例代码

     Process objProcess = Process.Start("IEXPLORE.EXE", "http://google.com");

if (objProcess != null)
{
objProcess.EnableRaisingEvents = true;
objProcess.Exited += new EventHandler(myProcess_Exited);
}

public static void myProcess_Exited(object sender, System.EventArgs e)
{
MessageBox.Show("You exited");
}

但是上面的代码在启动不同的进程(例如:记事本)时完美运行,并且在我关闭 exe 时它会触发退出事件。

这只会在启动 IE 8 时出现问题。有人可以向我说明问题是什么吗??

更新

大多数 friend 回复了我的帖子,说为什么你不能只使用一个 URL?为什么坚持使用 IE?

这里是原因

该应用程序的最终目标是从 Windows 应用程序启动 URL,并在 IE 上工作时隐藏一个 exe。并在关闭IE后显示exe。

谢谢

最佳答案

很可能是您已经将 IE 作为一个进程运行,所以当您尝试将它作为一个新进程再次启动时,它看起来已经有 IE 在运行,告诉它用户启动了一个新窗口(因此初始 IE将创建一个"new"窗口而不是一个新窗口)并退出。

可能的解决方案:尝试使用“-nomerge”命令行选项启动进程:

    Process objProcess = Process.Start("IEXPLORE.EXE", "-nomerge http://google.com/");

有趣的观察:objProcess.ExitCode(至少对于 IE8)将等于 0 如果退出将控制传递给另一个实例,并且1 如果它实际上被用户关闭了。

关于c# - Process.Start ("IEXPLORE.EXE") 在启动后立即触发 Exited 事件。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1825105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com