Process.Start(url) を使用してデフォルトの Web ブラウザーで URL を起動し、Process.Kill() を使用して URL を閉じる予定です。
問題は、デフォルトのブラウザを見つけて、どのプロセスを強制終了するかを知ることです。提案?
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