2009-09-16 5 views
21

Wie Sie eine Webseite in IE öffnen, während Sie auf eine Schaltfläche in einer C# -Anwendung klicken. Meine Absicht ist es, eine Web-Anmeldung für eine C# -Anwendung zu erstellen, die in IE geöffnet werden muss, in der angegebenen Breite und Höhe, und muss eine Funktion im Anwendungsprogramm aufrufen.Öffnen Sie eine Webseite in IE mit C#

+1

Eine Funktion wie in einer JavaScript-Funktion in der Webanwendung? –

+0

Die einzige Möglichkeit, Ihren C# -Code mit dem DOM auf der * Client * -Seite zu interagieren, besteht darin, den IE in WinForm als Controller einzubetten. Andernfalls können Sie Ihr IE-Add-on schreiben, das dies für Sie tut. Wenn Sie nur eine JavaScript-Funktion aufrufen möchten, können Sie die unten angegebene Option (als Antwort) verwenden und einen Parameter in der URL verwenden –

+0

Wenn Sie eine Art von Remote-Authentifizierung durchführen möchten, möchten Sie sicher einen Web-Service? Was Sie vorschlagen, scheint etwas ungewöhnlich zu sein (nicht, dass ich Sie davon abhalten möchte, ungewöhnliche Dinge zu untersuchen). – Xiaofu

Antwort

39

von 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

danke Tzury, aber ich habe die Frage mit allen meinen Bedarf aktualisiert plz werfen Sie einen Blick darauf – raki

+0

Der einzige Weg, ich weiß, dass Ihre C# -Code interagieren mit dem DOM auf der Client-Seite ist durch Einbetten der IE in WinForm als Controller . Andernfalls können Sie Ihr IE-Add-on schreiben, das dies für Sie tun wird Wenn Sie nur eine JavaScript-Funktion aufrufen möchten, können Sie die unten angegebene Option (als Antwort) verwenden und einen Parameter in der URL verwenden, um dies zu tun - Tzury Vor 3 Minuten [Diesen Kommentar löschen] –

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

Es gibt eine Möglichkeit, eine Seite in Standard-Browser zu öffnen System.Diagnostics.Process.Start(url);

Wenn Sie speziell in IE öffnen wollen, werden Sie wahrscheinlich eine neue IE erstellen müssen Prozess mit URL als Argument.

UPD: (. Dh http://stackoverflow.com/page?runFunction=1) Wenn Sie eine Funktion ausführen möchten, GET-Parameter in die URL-Zeichenfolge einfügen und in Ihrem Anwendungscode-Check für runFunction Parameter und basierend auf seinen Wert entscheiden, ob Ihre Anwendung die ausgeführt werden muss Funktion.

Ich glaube nicht, dass es möglich ist, neue IE-Fenster Breite und Höhe Werte anzugeben, müssen Sie möglicherweise Javascript dafür verwenden.

+1

DIES IST DIE RICHTIGE ANTWORT: System.Diagnostics.Process.Start (URL), mit dem Standard-Browser und vermeiden Sie viele andere Faktoren im Zusammenhang mit Systemen, Installationen und Anpassungen. –