2009-09-16 14 views
21

Bir C# uygulamasında bir düğmeyi tıklatırken IE'de web sayfası nasıl açılır. Amacım, belirli bir genişlikte ve yükseklikte IE'de açılması gereken ve uygulama programında bir işlevi çağırması gereken bir C# uygulaması için bir web girişi oluşturmaktır. http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.71).aspxc kullanarak IE'de bir web sayfasını açın C#

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(); 

       }  
    } 
} 
+1

Web uygulamasında JavaScript işlevindeki gibi bir işlev? –

+0

C# kodunuzun * client * tarafında DOM ile etkileşime girdiğinin tek yolu, IE'yi bir denetleyici olarak WinForm'a yerleştirmektir. Aksi takdirde, sizin için bunu yapacak IE eklentinizi yazabilirsiniz Tek yapmanız gereken bir JavaScript işlevi çağırmak istiyorsanız, aşağıda önerdiğim seçeneği (yanıt olarak) kullanabilir ve bunu yapmak için URL'de bir parametre kullanın. –

+0

Bir çeşit uzaktan kimlik doğrulaması yapmak istiyorsanız, bir web servisini mutlaka istiyorsunuz? Önerdiğiniz şey biraz sıradışı görünüyor (sizi sıradışı şeyleri araştırmaktan vazgeçirmek istemiyorum). – Xiaofu

cevap

39

Eğer IE açmak için özel olarak isterseniz muhtemelen yeni IE oluşturmanız gerekecektir System.Diagnostics.Process.Start(url);

varsayılan tarayıcıda bir sayfa açmak için bir yol yoktur argüman olarak URL ile işlem yapın.

UPD: (. Yani http://stackoverflow.com/page?runFunction=1) sizin uygulama çalıştırmak için gereken eğer, bir işlevi çalıştırmak Url'nizde dizesine GET parametrelerini eklemek istiyorsanız ve runFunction parametresi için uygulama kodu kontrol ve değeri dayalı karar işlevi.

Yeni IE pencere genişliği ve yükseklik değerlerini belirtmenin mümkün olduğunu düşünmüyorum, bunun için javascript kullanmanız gerekebilir.

+0

Teşekkürler Tzury, ama tüm ihtiyacım olan soruyu güncelledim plz – raki

+0

C# kodunuzun istemci tarafında DOM ile etkileşimini bildiğim tek yol, IE'yi bir denetleyici olarak WinForm'a yerleştirmektir . Aksi takdirde, sizin için bunu yapacak olan IE eklentinizi yazabilirsiniz. İstediğiniz tek şey bir JavaScript fonksiyonunu çağırmaksa, aşağıda önerdiğim seçeneği (cevap olarak) kullanabilir ve bunu yapmak için URL'de bir parametre kullanabilirsiniz - Tzury 3 dakika önce [bu yorumu sil] –

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

den

+1

BU CEVAP DOĞRUDAN ISSIZ: System.Diagnostics.Process.Start (url), varsayılan tarayıcıyı kullanarak ve sistemler, kurulumlar ve özelleştirmelerle ilgili diğer birçok faktörden kaçının. –

İlgili konular