2009-09-16 11 views
21

Cómo abrir una página web en IE mientras hace clic en un botón en una aplicación C#. Mi intención es crear un inicio de sesión web para una aplicación C# que debe abrirse en IE, en ancho y alto especificados, y necesita llamar a una función en el programa de aplicación.abra una página web en IE usando C#

+1

¿Funciona como en una función de JavaScript en la aplicación web? –

+0

La única forma en que sé que su código C# interactúa con el DOM en el lado * client * es mediante la incrustación del IE en WinForm como controlador. De lo contrario, puede escribir su complemento IE que lo hará por usted Si todo lo que quiere es llamar a una función JavaScript, puede usar la opción que sugiero a continuación (como respuesta) y usar un parámetro en la URL para hacerlo –

+0

Si desea hacer algún tipo de autenticación remota, ¿quiere un servicio web seguro? Lo que estás proponiendo parece un tanto inusual (no es que quiera desanimarte de investigar cosas inusuales). – Xiaofu

Respuesta

39

de http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.71).aspx

using System; 
using System.Diagnostics; 
using System.ComponentModel; 

namespace MyProcessSample 
{ 
    /// <summary> 
    /// Shell for the sample. 
    /// </summary> 
    public class MyProcess 
    { 

     /// <summary> 
     /// Opens the Internet Explorer application. 
     /// </summary> 
     public void OpenApplication(string myFavoritesPath) 
     { 
      // Start Internet Explorer. Defaults to the home page. 
      Process.Start("IExplore.exe"); 

      // Display the contents of the favorites folder in the browser. 
      Process.Start(myFavoritesPath); 

     } 

     /// <summary> 
     /// Opens urls and .html documents using Internet Explorer. 
     /// </summary> 
     public void OpenWithArguments() 
     { 
      // url's are not considered documents. They can only be opened 
      // by passing them as arguments. 
      Process.Start("IExplore.exe", "www.northwindtraders.com"); 

      // Start a Web page using a browser associated with .html and .asp files. 
      Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm"); 
      Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp"); 
     } 

     /// <summary> 
     /// Uses the ProcessStartInfo class to start new processes, both in a minimized 
     /// mode. 
     /// </summary> 
     public void OpenWithStartInfo() 
     { 

      ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); 
      startInfo.WindowStyle = ProcessWindowStyle.Minimized; 

      Process.Start(startInfo); 

      startInfo.Arguments = "www.northwindtraders.com"; 

      Process.Start(startInfo); 

     } 

     public static void Main() 
     { 
        // Get the path that stores favorite links. 
        string myFavoritesPath = 
        Environment.GetFolderPath(Environment.SpecialFolder.Favorites); 

        MyProcess myProcess = new MyProcess(); 

      myProcess.OpenApplication(myFavoritesPath); 
      myProcess.OpenWithArguments(); 
      myProcess.OpenWithStartInfo(); 

       }  
    } 
} 
+0

gracias Tzury, pero he actualizado la pregunta con todas mis necesidades, por favor échele un vistazo – raki

+0

La única forma en que sé que su código C# interactúa con el DOM en el lado del cliente es mediante la inclusión del IE en WinForm como controlador . De lo contrario, puede escribir su complemento de IE que lo hará por usted. Si todo lo que quiere es llamar a una función de JavaScript, puede usar la opción que sugerí a continuación (como respuesta) y usar un parámetro en la URL para hacerlo - Tzury Hace 3 minutos [eliminar este comentario] –

18
System.Diagnostics.Process.Start("iexplore", "http://example.com"); 
5

No es una forma de abrir una página en el navegador predeterminado System.Diagnostics.Process.Start(url);

Si desea específicamente para abrirlo en IE es probable que necesite para crear un nuevo IE procesar con URL como argumento

UPD: (. Es decir http://stackoverflow.com/page?runFunction=1) Si desea ejecutar una función, inserte parámetros entrar en la cadena de URL y en su cheque de código de la aplicación para el parámetro runFunction y en base a su valor de decidir si la aplicación necesita para ejecutar el función.

No creo que sea posible especificar nuevos valores de ancho y alto de la ventana IE, puede que necesite usar javascript para eso.

+1

ESTA ES LA RESPUESTA CORRECTA: System.Diagnostics.Process.Start (url), utilizando el navegador predeterminado y evita muchos otros factores relacionados con los sistemas, las instalaciones y las personalizaciones. –

Cuestiones relacionadas