import wmi c = wmi.WMI() for process in c.Win32_Process(): print process.ProcessID,process.name@H_502_0@但wmi的速度可是出奇的慢,实在不适合,@H_502_0@最后我在外面找到个例子,可以很好的解决该问题
from win32com.clIEnt import Getobject _wmi = Getobject('winmgmts:') # collect all the running processes processes = _wmi.Execquery('Select * from win32_process') for p in processes: print((p.ProcessID,p.ExecutablePath,p.Commandline,p.name))@H_502_0@由此全部代码为
def wmi_sql_all_name(pname):#全部程序列表 from win32com.clIEnt import Getobject _wmi = Getobject('winmgmts:') processes = _wmi.Execquery('Select * from win32_process') for p in processes: if p.name==pname: return p.ProcessIDdef process_restat(pname): import win32security,win32event#-----------------------------------------获取令牌 hToken = win32security.OpenProcesstoken(win32API.GetCurrentProcess(),win32con.TOKEN_ADJUST_PRIVILEGES | win32con.TOKEN_query) # 打开自己的程序令牌 luID = win32security.LookupPrivilegeValue(None,'SeDeBUGPrivilege') # 查看自己的权限,并写入权限关键字 PyTOKEN = ((luID,win32con.SE_PRIVILEGE_ENABLED),) # 将这些做成序列用做参数 pyt1 = win32security.AdjustTokenPrivileges(hToken,PyTOKEN) # 权限写入#---------------------------------------- processID=wmi_sql_all_name(pname) if processID!= None: hprocess = win32API.OpenProcess(win32con.PROCESS_ALL_ACCESS,False,processID) win32event.WaitForSingleObject(hprocess,-1) win32API.CloseHandle(hprocess) print U'已关闭' else: print u'未启动'@H_502_0@首先需要获取令牌,否则获取很多服务或者系统进程的信息都会报权限不足@H_502_0@使用OpenProcess得到程序句柄,@H_502_0@使用WaitForSingleObject得到程序的已通知状态也就是运行状态,第二参数为等待时间 -1 为永久等待@H_502_0@注意该函数会死锁线程,但不会占用cpu,很适合丢在子线程里,比无限循环跑程序列表要有效率得多@H_502_0@-------------------@H_502_0@突然想到有SQL语句了 我为啥还要循环呢?
def wmi_sql_all_name(pname): from win32com.clIEnt import Getobject _wmi = Getobject('winmgmts:') processes = _wmi.Execquery("Select * from win32_process where name= '%s'"%(pname)) try: return processes[0].ProcessID except: print u"没有发现程序" return None@H_502_0@将wmi_sql_all_name方法改为以以上@H_502_0@以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。 总结
以上是内存溢出为你收集整理的基于python监控程序是否关闭全部内容,希望文章能够帮你解决基于python监控程序是否关闭所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)