2013-09-25 110 views
0

我使用Process.Start(url)在默認Web瀏覽器中啓動URL,然後打算使用Process.Kill()關閉它。在VB.net中查找默認瀏覽器

問題是找到默認瀏覽器來知道要殺死哪個進程。建議?

回答

1

來自Opening default web browser

Private Function getDefaultBrowser() As String 
    Dim browser As String = String.Empty 
    Dim key As RegistryKey = Nothing 
    Try 
     key = Registry.ClassesRoot.OpenSubKey("HTTP\shell\open\command", False) 

     'trim off quotes 
     browser = key.GetValue(Nothing).ToString().ToLower().Replace("""", "") 
     If Not browser.EndsWith("exe") Then 
      'get rid of everything after the ".exe" 
      browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4) 
     End If 
    Finally 
     If key IsNot Nothing Then 
      key.Close() 
     End If 
    End Try 
    Return browser 
End Function 

在那裏你可以得到默認的瀏覽器。然後你可以遍歷正在運行的進程並殺死瀏覽器。

Dim browser As String 
browser = getDefaultBrowser() 
For Each p As Process In Process.GetProcesses   
    If p.ProcessName = browser Then 
     p.Kill() 
     Exit For 
    End If 
Next 
+0

對於殺工作我不得不剝離 「瀏覽器」 打倒: browserp = IO.Path.GetFileName(瀏覽器) strfile = browserp 昏暗strSplit()作爲字符串 strSplit =分段(strFile ,「。」) browserkill =(strSplit(0)) 用broweserkill瘦取代瀏覽器。我敢肯定,有一種更優雅的方式,但它的工作原理。 – gwilson