我有一个需要从Windows窗体应用程序打开的Web应用程序。
我目前的方法是在表单上使用WebBrowser控件并从WebBrowser控件执行JavaScript函数(filedes
)。
当我已经运行IE实例时,此方法正常工作。请注意,在这种情况下,IE在explorer.exe下运行:
当我的应用程序打开并执行window.open
时,将在explorer.exe下创建一个新的iexplore.exe进程。
当我运行没有预先存在的IE实例的应用程序时,会出现问题。当我这样做时,我的应用程序在svchost.exe下打开IE,如下图所示。
如果在svchost.exe下没有运行iexplore.exe进程,则会正确打开该窗口。关闭我的应用程序打开的IE窗口后,iexplore.exe进程持久化,阻止我的应用程序打开任何更多的IE窗口。 (如果我在svchost.exe下杀死了iexplore.exe进程,我可以再次从我的应用程序中打开IE。)
我创建了一个小应用程序来演示这个问题。如果使用单个表单和单个WebBrowser控件创建Windows窗体应用程序,并在Form1.cs文件中使用以下代码,则可以重现我遇到的问题。
问题:有没有办法强制IE在explorer.exe下打开?
window.open