Process.Start(“IExplore.exe”,“http://google.com”)未在VM上启动。适用于服务器和本地

时间:2014-04-24 23:18:40

标签: c# process.start

如标题上方

Process.Start("IExplore.exe", "http://google.com") 

不在我正在使用的VM上启动IE。但是,在服务器真实机器和本地计算机上执行它会正确启动。

尝试以下方法:

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

正如帖子Process.Start("IEXPLORE.EXE") immediately fires the Exited event after launch.. why?

中所建议的那样

try
 {
     Process.Start("http://google.com");
 }
catch (System.ComponentModel.Win32Exception)
 {
     Process.Start("IExplore.exe", "http://google.com");
 }

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");

任何建议都非常感谢

3 个答案:

答案 0 :(得分:0)

你在VM上安装了IE吧:D?无论如何,尝试以管理员身份运行应用程序,因为虚拟机上的UAC设置是“错误的”。

答案 1 :(得分:0)

试试这个......

Process.Start("http://www.google.com");

它将使用您的默认浏览器启动该网站。假设是Internet Explorer,你很高兴。

答案 2 :(得分:0)

如果您想进行IE自动化,这里有一个精简版本。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
using SHDocVw;
using mshtml;

public class InternetExplorerInstance
{
   public InternetExplorer Instance;

   public static InternetExplorerInstance GetCurrentInternetExplorerInstance()
   {
      InternetExplorer currentInternetExplorer = CurrentInternetExplorer();
      if ( currentInternetExplorer != null )
      {
         return new InternetExplorerInstance( currentInternetExplorer );
      }
      return null;
   }

   private InternetExplorerInstance( InternetExplorer ie )
   {
      Instance = ie;
   }

   public static void Iterate()
   {
      GetInternetExplorers();
   }

   private static IEnumerable<InternetExplorer> GetInternetExplorers()
   {
      ShellWindows shellWindows = new ShellWindowsClass();
      List<InternetExplorer> allExplorers = shellWindows.Cast<InternetExplorer>().ToList();
      IEnumerable<InternetExplorer> internetExplorers = allExplorers.Where( ie => Path.GetFileNameWithoutExtension( ie.FullName ).ToLower() == "iexplore" );
      return internetExplorers;
   }

   public static void LaunchNewPage( string url )
   {
      InternetExplorer internetExplorer = GetInternetExplorers().FirstOrDefault();
      if ( internetExplorer != null )
      {
         internetExplorer.Navigate2( url, 0x800 );
         WindowsApi.BringWindowToFront( (IntPtr) internetExplorer.HWND );
      }
      else
      {
         internetExplorer = new InternetExplorer();
         internetExplorer.Visible = true;
         internetExplorer.Navigate2( url );
         WindowsApi.BringWindowToFront((IntPtr) internetExplorer.HWND);
      }

   }
}

并非所有代码都包含在内,但它应该足以让你开始。