溶液打算從OS的不同而不同的操作系統。
HKEY_CURRENT_USER\Software\Classes\http\shell\open\command\(Default)
Python有與Windows註冊表打交道,所以你應該能夠做一個模塊:在Windows中,默認的瀏覽器(即用於http
協議的默認處理程序)可以從註冊表中讀取:
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傳遞給現有進程,因此無論如何您可能無法殺死它。
你如何通過URL打開瀏覽器? 'webbrowser.open'? 'os.startfile'?通過'os.system'運行''start'{}''.format(url)'?使用第三方模塊? – abarnert
試試這個:http://stackoverflow.com/questions/5916270/pythons-webbrowser-launches-ie-instead-of-default-on-windows-7 – Vivek
@Vivek:我不認爲這回答了OP的問題。他顯然已經知道如何打開一個網頁(儘管他沒有告訴我們他是怎麼做的)。他只是想知道如何殺死用來打開該網頁的流程。 – abarnert