有没有办法在 Python 中获取默认浏览器?
Is there a way to get the default browser in Python?
我想要一种在 Python 中找到默认浏览器的方法。我看过 https://docs.python.org/3.8/library/webbrowser.html
并且可能有一种方法可以转换我不知道的网络浏览器实例。
有人知道我该怎么做吗?
此外,我正在使用 Windows - 它不需要为 Mac 或 Ubuntu 工作。
编辑:
我已经尝试过 this website,它给我一个错误提示 'the file path does not exist'。
此外,我不想在默认浏览器中打开选项卡,我只想要名称。
编辑#2:
以下代码有效,但 returns Internet Explorer 而不是我的实际默认值 Chrome。
from winreg import*
with OpenKey(HKEY_CLASSES_ROOT,r"http\shell\open\command") as key:
cmd = QueryValue(key, None)
我想通了。我很确定这只适用于 Windows,但这是代码:
from winreg import *
with OpenKey(HKEY_CURRENT_USER, r"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice") as key:
browser = QueryValueEx(key, 'Progid')[0]
它将 return ChromeHTML
用于 Chrome,FirefoxURL
用于 Firefox,IE.HTTP
用于 Internet Explorer。
你可以试试这个
import webbrowser
default_browser = webbrowser.get()
default_browser_name = default_browser.name
default_browser_basename = default_browser.basename
正如文档所说
webbrowser.get([name])
Return a controller object for the browser type name. If name is empty, return a controller for a default browser appropriate to the caller’s environment.
我想要一种在 Python 中找到默认浏览器的方法。我看过 https://docs.python.org/3.8/library/webbrowser.html 并且可能有一种方法可以转换我不知道的网络浏览器实例。
有人知道我该怎么做吗?
此外,我正在使用 Windows - 它不需要为 Mac 或 Ubuntu 工作。
编辑:
我已经尝试过 this website,它给我一个错误提示 'the file path does not exist'。
此外,我不想在默认浏览器中打开选项卡,我只想要名称。
编辑#2:
以下代码有效,但 returns Internet Explorer 而不是我的实际默认值 Chrome。
from winreg import*
with OpenKey(HKEY_CLASSES_ROOT,r"http\shell\open\command") as key:
cmd = QueryValue(key, None)
我想通了。我很确定这只适用于 Windows,但这是代码:
from winreg import *
with OpenKey(HKEY_CURRENT_USER, r"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice") as key:
browser = QueryValueEx(key, 'Progid')[0]
它将 return ChromeHTML
用于 Chrome,FirefoxURL
用于 Firefox,IE.HTTP
用于 Internet Explorer。
你可以试试这个
import webbrowser
default_browser = webbrowser.get()
default_browser_name = default_browser.name
default_browser_basename = default_browser.basename
正如文档所说
webbrowser.get([name])
Return a controller object for the browser type name. If name is empty, return a controller for a default browser appropriate to the caller’s environment.