使用Windows計數器的方法

獲得系統進程列表

先用CreateToolhelp32Snapshot()函數生成系統進程快照,

然後用Process32First()和Process32Next()就可以獲得進程名稱和對應的PID了

 

對指定的進程,獲得它的擁有者

先用OpenProcess()打開指定進程,

再用OpenProcessToken()獲得令牌,

再用GetTokenInformation()獲得令牌信息(其中就包含進程擁有者的SID),

再用LookupAccountSid()將SID翻譯成用戶名

 

獲得指定進程的內存使用量 :(用性能計數器的方式獲得)

先用PdhOpenQuery()打開一個查詢,

再用PdhAddCounter()對這個查詢添加計數器:

 

例子:

監控指定進程消耗CPU時間

/Process(%s)/% Processor Time %s是進程名(進程名爲對應的應用程序名稱去掉擴展名剩下的部分)

需要監控某個進程的內存使用情況,字符串如下:

/Process(%s)/Working Set %s是進程名

再用PdhCollectQueryData()收集查詢信息,

再用PdhGetFormattedCounterValue()將查詢值格式化,

最後調用PdhCloseQuery()結束查詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章