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

使用PyInstaller打包的Python程序运行时WMI控制台频繁闪显求助

解决WMIC控制台闪显问题

问题出在调用WMIC命令时,Windows默认会创建新控制台窗口,哪怕捕获了输出也会短暂弹出。只需修改subprocess.run()的参数,添加窗口隐藏标记即可解决。

修改后的代码

import subprocess
import time
import pyttsx3

engine = pyttsx3.init()

def say_pc(txt):
    engine.say(txt)
    engine.runAndWait()

# 定义隐藏窗口的标记,Windows系统专用
CREATE_NO_WINDOW = 0x08000000

while True:
    # 添加creationflags参数隐藏控制台窗口
    result = subprocess.run(
        ["WMIC", "PATH", "Win32_Battery", "Get", "EstimatedChargeRemaining"],
        capture_output=True,
        creationflags=CREATE_NO_WINDOW
    )
    battery_perc = str(int(result.stdout.decode().split("\n")[1][:3].strip()))
    say_pc(battery_perc)
    time.sleep(10)

关键说明

  • CREATE_NO_WINDOW是Windows API的常量,值为0x08000000,作用是让子进程不创建控制台窗口。
  • 将这个参数传入subprocess.run(),执行WMIC时就不会弹出控制台窗口了。
  • 打包命令保持不变:pyinstaller --onefile --noconsole 'battery_perc.pyw'

重新打包后运行exe,就不会再出现每10秒闪控制台的现象了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 06:06:25