例子一:
Python用WMI模塊獲取windowns系統的硬件信息:硬盤分區、使用情況,內存大小,CPU型號,當前運行的進程,自啟動程序及位置,系統的版本等信息。
例子二:
由于我用到的不多,所以只獲取的CPU、內存和硬盤,如果需要其它資源,請參照msdn。
def getSysInfo(wmiService = None):
result = {}
if wmiService == None:
wmiService = wmi.WMI()
# cpu
for cpu in wmiService.Win32_Processor():
timestamp = time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime())
result['cpuPercent'] = cpu.loadPercentage
# memory
cs = wmiService.Win32_ComputerSystem()
os = wmiService.Win32_OperatingSystem()
result['memTotal'] = int(int(cs[0].TotalPhysicalMemory)/1024/1024)
result['memFree'] = int(int(os[0].FreePhysicalMemory)/1024)
#disk
result['diskTotal'] = 0
result['diskFree'] = 0
for disk in wmiService.Win32_LogicalDisk(DriveType=3):
result['diskTotal'] += int(disk.Size)
result['diskFree'] += int(disk.FreeSpace)
result['diskTotal'] = int(result['diskTotal']/1024/1024)
result['diskFree'] = int(result['diskFree']/1024/1024)
return result
if __name__ == '__main__':
wmiService = wmi.WMI()
while True:
print getSysInfo(wmiService)
time.sleep(3)
采用的wmi模塊獲取的,由于wmi初始化時占用系統資源太高,所以如果需要循環獲取,請在循環體外面把wmi對象初始化好,然后傳入函數里面,這樣就不會產生CPU資源過高的情況。
新聞熱點
疑難解答
圖片精選