python通過wmi擷取windows下進程的資訊

來源:互聯網
上載者:User

標籤:

linux應該有很多方法可以擷取進程的cpu和記憶體資訊,但windows貌似之前接觸的是psutil,後來查了一些資料發現wmi也能夠擷取進程的資訊,但貌似效率不太高,應該可以做監控等效能要求不太高的情況

下載wmi,這個網上很多方法和途徑,我是用easyinstall來安裝,這個不詳細說明了

直接附上代碼:

import wmifrom win32com.client import GetObjectimport win32gui,timemywmi = GetObject("winmgmts:")# allProcess = mywmi.ExecQuery("select * from Win32_Process")# for i in allProcess:#     pid = i.Properties_("ProcessID")#     print pid    # network = mywmi.ExecQuery("select Processor, _Total, Processor Time from PerformanceCounter")# print network # for i in network:#     print i.Properties_("Processor")    mywql= mywmi.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfProc_Process where PercentPrivilegedTime>10")def getPrcessInfo(wql):    while 1:                for j in wql:            #print j.Properties_("PercentPrivilegedTime").__int__()            ##print j.Properties_("name").__str__()+" "+j.Properties_("IDProcess").__str__()+"  "+j.Properties_("PercentPrivilegedTime").__str__()            if j.Properties_("name").__str__()!= "_Total" and j.Properties_("name").__str__()!="Idle":                print j.Properties_("name")                print j.Properties_("PercentPrivilegedTime").__int__()                print j.Properties_("WorkingSet").__int__()                time.sleep(1)                #return 1            #break                ##print ":)"        getProcessInfo(mysql)

  編碼方式停留在初學的基礎上,後續需要改進,j.Properties_("屬性")得出的是一個執行個體,所以需要轉換成相應的格式;

詳細的屬性可以參考https://msdn.microsoft.com/en-us/library/aa394277(VS.85).aspx

個人感覺wmi功能挺強大的,能搞通的話,應該可以玩轉windows(有點誇張了)

python通過wmi擷取windows下進程的資訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.