Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebBrowser控件在svchost.exe下打开IE_C#_Internet Explorer_Process_Webbrowser Control_Window.open - Fatal编程技术网

C# WebBrowser控件在svchost.exe下打开IE

C# WebBrowser控件在svchost.exe下打开IE,c#,internet-explorer,process,webbrowser-control,window.open,C#,Internet Explorer,Process,Webbrowser Control,Window.open,我有一个需要从Windows窗体应用程序打开的web应用程序 我目前的方法是在表单上使用WebBrowser控件,并从WebBrowser控件执行JavaScript函数(window.open) 当我已经有一个IE实例在运行时,这个方法可以很好地工作。请注意,在这种情况下,IE在explorer.exe下运行: 当我的应用程序打开并执行窗口.open时,将在explorer.exe下创建一个新的iexplore.exe进程 当我在没有预先存在的IE实例的情况下运行应用程序时,问题就出现了。执

我有一个需要从Windows窗体应用程序打开的web应用程序

我目前的方法是在表单上使用WebBrowser控件,并从WebBrowser控件执行JavaScript函数(
window.open

当我已经有一个IE实例在运行时,这个方法可以很好地工作。请注意,在这种情况下,IE在explorer.exe下运行:

当我的应用程序打开并执行
窗口.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下打开?

使用系统;
使用System.Windows.Forms;
命名空间TestApp
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
this.webBrowser1.Url=新Uri(“http://google.com");
this.webBrowser1.DocumentCompleted+=浏览器\u DocumentCompleted;
}
私有无效浏览器\u文档已完成(对象发送者,WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument doc=this.webBrowser1.Document;
HtmlElement head=doc.GetElementsByTagName(“head”)[0];
HtmlElement scriptEl=doc.CreateElement(“脚本”);
字符串jsScript=@“函数openApp(urlToOpen){
window.open(urlToOpen,“_blank”);
//做一些其他的事情
}";
SetAttribute(“text”,jsScript);
头.附肢儿童(scriptEl);
webBrowser1.Document.InvokeScript(“openApp”,新对象[]{”http://google.com" });
}
}
}