You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python+Tkinter浏览器控制:关闭Edge失败问题求助

解决Microsoft Edge浏览器关闭问题

问题核心原因

你的代码执行失败的关键是Microsoft Edge的正确进程名是msedge.exe,而非edge.exe或Microsoft Edge。直接用os.system执行taskkill时,若目标进程不存在会触发错误,进而导致程序崩溃。

无额外依赖的解决方案

使用Python内置的subprocess模块替代os.system,它能更安全地执行系统命令,即使进程不存在也不会让程序崩溃。同时指定正确的进程名并添加参数确保彻底关闭浏览器:

from tkinter import *
import webbrowser
import subprocess

def scames():
    webbrowser.open("https://www.met.police.uk/advice/advice-and-information/fa/fraud/personal-fraud/prevent-personal-fraud/")

def anti():
    webbrowser.open("https://www.avast.com/en-gb/free-antivirus-download#pc")

def mail():
    webbrowser.open("https://www.google.com/gmail/about/")
    
def tabs():
    # 关闭所有Edge进程及关联子进程,进程不存在时也不会触发程序崩溃
    subprocess.run(
        ["taskkill", "/f", "/im", "msedge.exe", "/t"],
        capture_output=True,
        text=True
    )

root = Tk()
root.title("WebBrowsers")

mybutton = Button(root,text = "click me for free v-bucks!!", padx = 50, pady = 50, command = scames)
mybutton.pack()

mybutton2 = Button(root,text = "you have a virus clike here to remove it", padx = 50, pady = 50, command = anti)
mybutton2.pack()

mybutton3 = Button(root,text = "you have mail", padx = 50, pady = 50, command = mail)
mybutton3.pack()

mybutton4 = Button(root,text = "you have too many tabs", padx = 50, pady = 50, command = tabs)
mybutton4.pack()

root.mainloop()

关键改动说明

  1. 修正进程名:将错误的edge.exe替换为Edge官方标准进程名msedge.exe。
  2. 改用subprocess.run:替代os.system,通过capture_output=True捕获命令输出,避免错误信息干扰主程序,且默认不会因命令执行失败抛出异常,防止程序崩溃。
  3. 添加/t参数:关闭Edge主进程的同时,一并关闭所有关联子进程(如各标签页对应的进程),确保彻底关闭浏览器。

内容的提问来源于stack exchange,提问作者OLIE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:07:22