pyinstaller -w 打包exe后,打开程序WMIC窗口还是会一闪而过

因为我要获取UUID 使用了下面这个方法

打包后打开程序, wmic.exe窗口会一闪而过,这个要怎么解决

wmic窗口:

讨论数量: 4
Jason990420

当您的脚本完成时,它将关闭 command 窗口。

尝试添加一些东西,来等待你的动作,再结束你的脚本,比如

import keyboard
import subprocess

def GetUUID():
    cmd = 'wmic csproduct get uuid'
    uuid = str(subprocess.check_output(cmd))
    pos1 = uuid.find("\n") + 2
    uuid = uuid[pos1:-15]
    return uuid

print(GetUUID())

keyboard.wait('space')

注意:在这里提问的时候最好附上你的文字版脚本,否则我们需要自己输入一个。

1年前 评论

你是不是打包了很多个py文件?生成的xxx.spec

1年前 评论
miusa166 (作者) 1年前

你 cmd 命令就是启动 wmic.exe, wmic 启动他就会有一个窗口。我现在是直接 import wmi 然后python 写代码获取 cpu 信息和 bois 信息。

pip install wmi  
pip install pypiwin32
import wmi


# cpu_list = c.Win32_Processor()
# for cpu in cpu_list:
#   print (cpu)


class SystemUtil:
    _system = wmi.WMI()

    def get_cpu_id(self):
        tmp_dict = {'cpi_cores': 0}
        for cpu in self._system.Win32_Processor():
            tmp_dict['cpuid'] = cpu.ProcessorId
            tmp_dict['cpu_type'] = cpu.Name
            tmp_dict['ststem_name'] = cpu.SystemName
            try:
                tmp_dict['cpi_cores'] = cpu.NumberOfCores
            except:
                tmp_dict['cpi_cores'] += 1
                tmp_dict['cpu_clock'] = cpu.MaxClockSpeed
                tmp_dict['data_width'] = cpu.DataWidth
        return tmp_dict['cpuid']
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!