鱼C论坛

 找回密码
 立即注册
查看: 1105|回复: 0

[技术交流] 通过dxdiag工具获取系统信息

[复制链接]
发表于 2020-6-4 16:27:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#coding:utf-8

import os
from time import sleep
import multiprocessing as multi
from xml.etree.ElementTree import ElementTree as et

class thr_dxdi(multi.Process): 
    def __init__(self,filename):
        multi.Process.__init__(self)
        self.fn = filename
        
    def run(self):
        self.s = self.fn.get()
        if self.s:
            err = os.system('dxdiag /x ' + self.s)
            if err != 0:
                print('run dxdiag fail!')
                input('')
                exit()
        self.fn.task_done()
    
os.chdir(r'D:\GIN\py\xml')
cf = 'config.xml'

if __name__ == '__main__':
    os.system('chcp 936 >nul') #设置cmd页面代码
    if os.path.exists(cf):
        os.remove(cf)
    q = multi.JoinableQueue() #队列
    th = thr_dxdi(q)
    th.start()
    q.put(cf) #发送一个元素
    # q.join() #等待队列完成
    
    count = 0
    while True:
        if not os.path.exists(cf):
            count += 1
            print('请稍等,系统正在生成配置信息...', count, '秒')
            sleep(1)
            os.system('cls')
            continue
        break
    
    syslist = ['SystemInformation',# 系统相关
                'DisplayDevices/DisplayDevice', #显示相关
                'LogicalDisks/LogicalDisk'] #硬盘
    cfx = et(file = cf) #打开文件
    for item in syslist:
        for i in cfx.findall(item): #搜索信息,返回列表或者迭代器
            for n in range(len(i)): #遍历列表
                print('{:26}:{}'.format(i[n].tag,i[n].text))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 17:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表