PYWIN32 + WMI模块:获取WINDOWS系统基本信息

PYWIN32:操作Window系统

Python是没有自带访问windows系统API的库的,需要下载。库的名称叫pywin32,可以从网上直接下载。

下载:http://sourceforge.net/projects/pywin32/files%2Fpywin32/   (下载适合你的Python版本)

介绍这个库里面最重要的两个模块:win32api和win32con。win32api顾名思义,就是用python对win32的本地api进行了封装;win32con个人理解为win32constant,即win32的常量定义。

有了以上这两个模块我们就可以来一个win32版本的Python Helloworld了。

  1. import win32api  
  2. import win32con  
  3. win32api.MessageBox(win32con.NULL, 'Python 你好!''你好', win32con.MB_OK)  

运行一下,是不是看到消息框,嘿嘿,就这么简单。win32con是一个很好的工具,只要你想要的win32常量,里面基本上都有。

应用范围: 修改注册表,读取操作系统信息, 操作IE, outlook等等。




WMI模块是在PYWIN32上面的封装,使得编程更加简便。

下载及说明: https://pypi.python.org/pypi/WMI/ 


http://www.cnblogs.com/aguncn/p/3298583.html:

示例:得到CPU, 硬盘, 进程的信息:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wmi
import os
import sys
import platform
import time

def sys_version():
    c = wmi.WMI ()
    #获取操作系统版本
    for sys in c.Win32_OperatingSystem():
        print "Version:%s" % sys.Caption,"Vernum:%s" % sys.BuildNumber
        print  sys.OSArchitecture#系统是32位还是64位的
        print sys.NumberOfProcesses #当前系统运行的进程总数

def cpu_mem():
    c = wmi.WMI ()
    #CPU类型和内存
    for processor in c.Win32_Processor():
        #print "Processor ID: %s" % processor.DeviceID
        print "Process Name: %s" % processor.Name.strip()
    for Memory in c.Win32_PhysicalMemory():
        print "Memory Capacity: %.fMB" %(int(Memory.Capacity)/1048576)

def cpu_use():
    #5s取一次CPU的使用率
    c = wmi.WMI()
    while True:
        for cpu in c.Win32_Processor():
            timestamp = time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime())
            print '%s | Utilization: %s: %d %%' % (timestamp, cpu.DeviceID, cpu.LoadPercentage)
            time.sleep(5)
            break

def disk():
    c = wmi.WMI ()
    #获取硬盘分区
    for physical_disk in c.Win32_DiskDrive ():
        for partition in physical_disk.associators ("Win32_DiskDriveToDiskPartition"):
            for logical_disk in partition.associators ("Win32_LogicalDiskToPartition"):
                print physical_disk.Caption, partition.Caption, logical_disk.Caption

    #获取硬盘使用百分情况
    for disk in c.Win32_LogicalDisk (DriveType=3):
        print disk.Caption, "%0.2f%% free" % (100.0 * long (disk.FreeSpace) / long (disk.Size))

def network():
    c = wmi.WMI ()
    #获取MAC和IP地址
    for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1):
        print "MAC: %s" % interface.MACAddress
    for ip_address in interface.IPAddress:
        print "ip_add: %s" % ip_address
    print

    #获取自启动程序的位置
    for s in c.Win32_StartupCommand ():
        print "[%s] %s <%s>" % (s.Location, s.Caption, s.Command)


    #获取当前运行的进程
    for process in c.Win32_Process ():
        print process.ProcessId, process.Name

def main():
    sys_version()
    cpu_mem()
    disk()
    network()
    #cpu_use()

if __name__ == '__main__':
    main()
    print platform.system()
    print platform.release()
    print platform.version()
    print platform.platform()
    print platform.machine()


你可能感兴趣的:(Python-module)