Ram*_*Vel 12 c# process internet-explorer-8
我在xp中安装了IE8有一个奇怪的问题.我试图使用c#中的System.Diagnostics.Process.Start方法启动IE.我需要捕获IE的退出事件并执行一些操作.但我最终遇到了一个相当奇怪的问题,IE在发布后立即触发了退出的事件.
这是示例代码
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");
}
Run Code Online (Sandbox Code Playgroud)
但上面的代码完全适用于laucnching不同的进程(例如:记事本),当我关闭exe时它会触发退出事件.
这只会让问题启动IE 8.有人可以澄清我的问题是什么?
UPDATE
大多数朋友回复了我的帖子,并说为什么你不能只使用一个URL?为何坚持IE?
这里的原因
该应用程序的最终目的是从Windows应用程序启动URL,并在IE上工作时隐藏exe.关闭IE后显示exe.
谢谢
Reg*_*ent 21
最有可能的是你已经将IE作为一个进程运行,所以当你尝试再次作为一个新进程启动它时,它看起来已经有IE运行,告诉它用户启动了一个新窗口(所以最初的IE将创建一个"新"窗口而不是新窗口并退出.
可能的解决方案: 尝试使用"-nomerge"命令行选项启动该过程:
Process objProcess = Process.Start("IEXPLORE.EXE", "-nomerge http://google.com/");
Run Code Online (Sandbox Code Playgroud)
有趣的观察 :( objProcess.ExitCode对于IE8至少)将等于0如果退出将控制权传递给另一个实例,并且1如果它实际上是由用户关闭的话.