我的脚本每 X 秒运行一个命令。
如果命令类似于“start 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
协议)可以从注册表中读取:
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 传递给现有进程,因此您可能无法杀死它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)