如何使用python获取默认浏览器的名称

如何使用python获取默认浏览器的名称,python,Python,我的脚本每X秒运行一个命令 如果命令类似于“启动www”->在默认浏览器中打开网站,我希望能够在下次执行该命令之前关闭浏览器 下面是脚本的简短部分: if "start www" in command: time.sleep(interval - 1) os.system("Taskkill /IM chrome.exe /F") 我希望能够支持firefox、ie、chrome和opera,并且只关闭通过URL打开的浏览器 为此,我需要知道要终止哪个进程 如何在windows

我的脚本每X秒运行一个命令

如果命令类似于“启动www”->在默认浏览器中打开网站,我希望能够在下次执行该命令之前关闭浏览器

下面是脚本的简短部分:

if "start www" in command:
    time.sleep(interval - 1)
    os.system("Taskkill /IM chrome.exe /F")
我希望能够支持firefox、ie、chrome和opera,并且只关闭通过URL打开的浏览器

为此,我需要知道要终止哪个进程


如何在windows中使用python识别操作系统的默认浏览器?

不同操作系统的解决方案会有所不同。在Windows上,可以从注册表中读取默认浏览器(即
http
协议的默认处理程序),地址为:

HKEY_CURRENT_USER\Software\Classes\http\shell\open\command\(Default)
Python有一个处理Windows注册表的模块,因此您应该能够:

from _winreg import HKEY_CURRENT_USER, OpenKey, QueryValue
# In Py3, this module is called winreg without the underscore

with OpenKey(HKEY_CURRENT_USER,
             r"Software\Classes\http\shell\open\command") as key:
    cmd = QueryValue(key, None)
您将返回一个命令行字符串,该字符串中有一个
%1
标记,其中应该插入要打开的URL


您可能应该使用
子流程
模块来启动浏览器;您可以保留浏览器的进程对象并终止浏览器的确切实例,而不是盲目终止具有相同可执行名称的所有进程。如果我已经打开了我的默认浏览器,如果你在没有警告的情况下杀死它,我会非常生气。当然,有些浏览器不支持多个实例;第二个实例只是将URL传递给现有进程,因此您可能无法终止它。

如何通过URL打开浏览器<代码>网络浏览器。是否打开<代码>操作系统启动文件?通过
os.system
运行
'start“{}”格式(url)
?使用第三方模块?试试这个:@Vivek:我认为这并不能回答OP的问题。他显然已经知道如何打开网页(尽管他没有告诉我们他是如何打开的)。他只是想知道如何终止用于打开网页的进程。同时…你确定要这样做吗?如果我已经用6个窗口中的48个选项卡打开了我的默认浏览器,并且您的脚本弹出打开一个新窗口,然后关闭浏览器并关闭我现有的6个窗口,我不会太高兴…我正在使用os.system(command)-If command=“start www.google.com”它启动默认浏览器如果他通过
os.system
使用
os.startfile
start
,这确实是唯一正确的答案。但显然这就是他正在做的,+1。好的,如何使用子流程启动命令“启动www.google”。我在这方面遇到了困难。不要使用
start
<代码>开始在将控制权移交给浏览器后立即消失。直接启动浏览器。在Windows 10上没有这样的注册表项,这是因为该注册表项使用基础默认值,现在很难找到它。替补队员?