标签:
为何不用wmi呢?因为执行很慢,为啥不用winreg?因为winreg在批量获取及遍历服务方面很不方便,于是采用这方法
该方法同命令行下的wmic执行
获取服务信息
#coding=utf8 from win32com.client import GetObject mywmi = GetObject("winmgmts:") objs = mywmi.InstancesOf("Win32_Service") for obj in objs: print obj.PathName
获取进程信息
#coding=utf8
from win32com.client import GetObject mywmi = GetObject("winmgmts:") objs = mywmi.InstancesOf("Win32_Process") for obj in objs: #print obj.executablepath print obj.CommandLine
执行代码的灵感来源于以下这段文字:
VB使用Wmi获取系统当前进程详细信息/列表,VB使用Wmi获取系统当前进程信息/列表,VB使用Wmi获取系统进程信息/列表,VB使用Wmi获取当前进程信息/列表,VB使用Wmi获取进程信息/列表,VB Wmi 获取当前进程信息/列表,VB Wmi 系统进程详细信息/列表,VB Wmi 进程列表,VB Wmi 进程信息,VB Wmi 进程,VB Wmi,GetObject("winmgmts://./root/cimv2:win32_process").instances,winmgmts://./root/cimv2:win32_process,VB winmgmts://./root/cimv2,VB win32_process,VB GetObject,进程名称:Wmi.Name,进程路径:Wmi.executablepath,线程数量:Wmi.ThreadCount,PID:Wmi.ProcessID,父PID:Wmi.ParentProcessID,优先级:Wmi.Priority,命令行:Wmi.CommandLine,占用内存:Wmi.WorkingSetSize / 1024 & "K",用户名称:Wmi.ExecMethod_("GetOwner").User,启动时间:Wmi.CreationDate,另外一种获取PID函数:Wmi.Handle。 VB使用Wmi获取系统当前进程详细信息: Dim Wmi, Jic As String For Each Wmi In GetObject("winmgmts://./root/cimv2:win32_process").instances_ ‘循环进程 Jic = Jic & " " & _ "进程:" & Wmi.Name & " " & _ "路径:" & Wmi.executablepath & " " & _ "线程:" & Wmi.ThreadCount & " " & _ "PID:" & Wmi.ProcessID & " " & _ "父PID:" & Wmi.ParentProcessID & " " & _ "优先级:" & Wmi.Priority & " " & _ "命令行:" & Wmi.CommandLine & " " & _ "内存:" & Wmi.WorkingSetSize / 1024 & "K" & " " & _ "用户:" & Wmi.ExecMethod_("GetOwner").User & " " & _ "启动时间:" & Wmi.CreationDate & " " & vbCrLf ‘"PID:" & Wmi.Handle ‘另外一种获取PID函数 Next MsgBox Jic VB "winmgmts://./root/CIMV2"对象的详细用法: ·GetOwner() 取得进程用户名。用法:objGetOwner(变量名) Terminate() 结束进程。用法:obj.Terminate() 属性: ProcessID 进程的PID。 ThreadCount 进程的线程数 ExecutablePath 进程的完整路径
python调用win32com.client的GetObject查找进程信息及服务信息
标签:
原文地址:http://www.cnblogs.com/slqt/p/5773763.html