獲得系統進程列表 :
先用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()結束查詢