2009-09-16 21 views
21

Jak otworzyć stronę internetową w IE, klikając przycisk w aplikacji C#. Moim zamiarem jest utworzenie logowania do sieci dla aplikacji C#, która musi być otwarta w IE, na określonej szerokości i wysokości, i musi wywoływać funkcję w aplikacji.otworzyć stronę internetową w IE za pomocą C#

+1

Funkcja jak w funkcji JavaScript w aplikacji internetowej? –

+0

Jedynym sposobem, w jaki wiem, że twój kod C# współdziała z DOM po stronie * klienta * jest osadzenie IE w WinForm jako kontrolera. W przeciwnym razie możesz napisać dodatek do przeglądarki IE, który zrobi to za Ciebie. Jeśli chcesz tylko wywołać funkcję JavaScript, możesz skorzystać z opcji sugerowanej poniżej (jako odpowiedzi) i użyć parametru w adresie URL, aby to zrobić –

+0

Jeśli chcesz wykonać zdalną autoryzację, z pewnością chcesz korzystać z usługi WWW? To, co proponujesz, wydaje się odrobinę niezwykłe (nie chcę cię zniechęcić do zbadania niezwykłych rzeczy). – Xiaofu

Odpowiedz

39

z 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

dziękuję Tzury, ale mam zaktualizowane pytanie z całą moją potrzebą plz spojrzeć na to – raki

+0

Jedyny sposób wiem, aby twój kod C# współdziałał z DOM po stronie klienta jest przez osadzenie IE w WinForm jako kontrolera . W przeciwnym razie możesz napisać swój dodatek do IE, który zrobi to za ciebie Jeśli wszystko, co chcesz, to wywołać funkcję JavaScript, możesz użyć opcji, którą zasugerowałem poniżej (jako odpowiedź) i użyć parametru z adresu URL, aby to zrobić - Tzury 3 minuty temu [usuń ten komentarz] –

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

Jest na to sposób, aby otworzyć stronę w domyślnej przeglądarce System.Diagnostics.Process.Start(url);

Jeśli chcesz specjalnie, aby go otworzyć w IE będzie prawdopodobnie trzeba utworzyć nowy IE przetwarzaj z adresem URL jako argumentem.

UPD (tj. http://stackoverflow.com/page?runFunction=1) Jeśli chcesz uruchomić funkcję, włóż parametry dostać się do adresu URL w kodzie aplikacji parametr sprawdzenia runFunction i na podstawie jej wartości decyduje, czy aplikacja musi uruchomić funkcjonować.

Nie sądzę, że możliwe jest określenie nowych wartości szerokości i wysokości okna IE, może być konieczne użycie do tego javascript.

+1

TO JEST PRAWA ODPOWIEDŹ: System.Diagnostics.Process.Start (url), używając domyślnej przeglądarki i unikaj wielu innych czynników związanych z systemami, instalacjami i dostosowaniami. –

Powiązane problemy