gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 02:20:59 25 4
gpt4 key购买 nike

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

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

下面这个简短的脚本部分:

if "start www" in command:
time.sleep(interval - 1)
os.system("Taskkill /IM chrome.exe /F")

我希望能够支持firefox,即chrome和opera,并且只关闭通过URL打开的浏览器。

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

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

最佳答案

解决方案因操作系统而异。在 Windows 上,可以从注册表中读取默认浏览器(即 http 协议(protocol)的默认处理程序):

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。

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

关于python - 如何使用python获取默认浏览器的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19037216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com