我的脚本每隔X秒运行一次命令.
如果命令类似于“开始www” – >在默认浏览器中打开一个网站我希望能够在下次执行命令之前关闭浏览器.
以下脚本的这个简短部分:
if "start www" in command:
time.sleep(interval - 1)
os.system("Taskkill /IM chrome.exe /F")
我希望能够支持firefox,即chrome和opera,并且只关闭由URL打开的浏览器.
为此,我需要知道要杀死哪个进程.
如何在Windows中使用python识别我的os默认浏览器?
解决方法:
解决方案将从操作系统到操作系统不同.在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传递给现有进程,因此您无论如何都可能无法将其杀死.
标签:python
来源: https://codeday.me/bug/20190529/1176601.html