鱼C论坛

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

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

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

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

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

x
  1. #coding:utf-8

  2. import os
  3. from time import sleep
  4. import multiprocessing as multi
  5. from xml.etree.ElementTree import ElementTree as et

  6. class thr_dxdi(multi.Process):
  7.     def __init__(self,filename):
  8.         multi.Process.__init__(self)
  9.         self.fn = filename
  10.         
  11.     def run(self):
  12.         self.s = self.fn.get()
  13.         if self.s:
  14.             err = os.system('dxdiag /x ' + self.s)
  15.             if err != 0:
  16.                 print('run dxdiag fail!')
  17.                 input('')
  18.                 exit()
  19.         self.fn.task_done()
  20.    
  21. os.chdir(r'D:\GIN\py\xml')
  22. cf = 'config.xml'

  23. if __name__ == '__main__':
  24.     os.system('chcp 936 >nul') #设置cmd页面代码
  25.     if os.path.exists(cf):
  26.         os.remove(cf)
  27.     q = multi.JoinableQueue() #队列
  28.     th = thr_dxdi(q)
  29.     th.start()
  30.     q.put(cf) #发送一个元素
  31.     # q.join() #等待队列完成
  32.    
  33.     count = 0
  34.     while True:
  35.         if not os.path.exists(cf):
  36.             count += 1
  37.             print('请稍等,系统正在生成配置信息...', count, '秒')
  38.             sleep(1)
  39.             os.system('cls')
  40.             continue
  41.         break
  42.    
  43.     syslist = ['SystemInformation',# 系统相关
  44.                 'DisplayDevices/DisplayDevice', #显示相关
  45.                 'LogicalDisks/LogicalDisk'] #硬盘
  46.     cfx = et(file = cf) #打开文件
  47.     for item in syslist:
  48.         for i in cfx.findall(item): #搜索信息,返回列表或者迭代器
  49.             for n in range(len(i)): #遍历列表
  50.                 print('{:26}:{}'.format(i[n].tag,i[n].text))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 20:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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