2013-10-13 277 views
2

我想通過使用C#使瀏覽器打開爲彈出窗口。基本上,我正在檢測用戶何時啓動瀏覽器,然後我想立即打開用戶打開的窗口下的新瀏覽器窗口。以下是我迄今爲止:在C#中打開瀏覽器窗口作爲彈出窗口#

url = "example.com"; 
Process[] pname = Process.GetProcessesByName("chrome"); 

if (pname.Length == 0) // if the user didn't start chrome 
{ 
    chrome = false; 
} 
else // if chrome is running 
{ 
    if (!chrome) // if the browser wasn't opened before and it was opened just now. 
    { 
     Process process = new Process(); 
     process.StartInfo.FileName = "chrome"; 
     process.StartInfo.Arguments = url; 
     process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; 
     process.Start(); 
     //Process.Start("chrome", url); 
    } 

    chrome = true; 
} 

但是,這並在一個新的窗口,有時在一個新的標籤,有時打開它。也許我應該使用不同的方式來啓動瀏覽器或其他東西?謝謝!

回答

3

當你調用外部程序(在這種情況下爲Chrome)時,你必須「遵循其規則」。通過查看Chrome參數(list here),--new-window可提供您想要的內容。因此,你必須在你的代碼執行下列變化:

process.StartInfo.Arguments = url + " --new-window"; 

如果你想擁有完全控制權,也許你應該創建自己的瀏覽器(WebBrowser Class,例如)。

+0

謝謝你!它的作品:) – armin

+0

@ArminAšimović不客氣。 – varocarbas

0

我會建議使用URL作爲文件名。因爲執行此操作時,系統會自動檢測路徑是否爲Web位置,並啓動用戶默認瀏覽器。 這也可以看出瀏覽器是否已經打開,如果是,打開窗口而不是啓動一個新窗口。

大多數人喜歡這個,而不是啓動Internet Explorer的程序,或者你的情況,Chrome。

你的問題有點含糊,所以請讓我們知道這是你尋求的答案。

+1

我試過這個,它仍然在新選項卡中打開。 – armin

+0

啊,對,你想讓它在新窗口中打開。我不完全確定如何做,但我知道很多人(包括我自己)都不喜歡有一個程序在新窗口中打開網站,而不是當前的瀏覽器。但你的選擇。 – Falgantil

相關問題