c# – Process.Start(“IEXPLORE.EXE”)在启动后立即启动Exited
发布时间:2020-12-15 04:00:06 所属栏目:百科 来源:网络整理
导读:我有一个奇怪的问题,IE8安装在xp.我试图在c#中使用System.Diagnostics.Process.Start方法启动IE.我有一个要求来捕获IE的退出事件,并进行一些操作.但是,我终于遇到了一个相当奇怪的问题,IE在启动后立即启动了退出的事件. 这是示例代码 Process objProcess = P
我有一个奇怪的问题,IE8安装在xp.我试图在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"); } 但是,上面的代码完美的工作,当熟练的不同的过程(例如:记事本),它触发退出事件,当我关闭的exe. 这只会给IE 8发布问题.有人可以澄清一下我有什么问题吗? UPDATE 大多数朋友回复了我的帖子,并说为什么你不能只使用一个URL?为什么坚持使用IE? 这里的原因 该应用程序的最终目的是从Windows应用程序启动一个URL,并在IE上工作时隐藏一个exe.并关闭IE后显示exe. 谢谢 解决方法
最有可能的是,您已经将IE作为一个进程运行了,所以当您尝试以新进程再次启动它时,它看起来已经有IE运行,告诉用户发起了一个新的窗口(所以初始的IE将创建一个“新”窗口而不是新窗口)并退出.
可能解决方案 Process objProcess = Process.Start("IEXPLORE.EXE","-nomerge http://google.com/"); 有趣的观察:objProcess.ExitCode(对于IE8至少)将等于0,如果退出传递给另一个实例,如果实际上被用户关闭,则为1. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |