PdhExpandWildCardPath返回太多路径

时间:2011-02-25 11:21:57

标签: windows delphi performancecounter

我正在尝试获取(Delphi XE)应用程序中每个(最多200个)线程的CPU利用率。为了准备这个,我向PdhExpandWildCardPath传递一个字符串'\Thread(myappname/*)\% Processor Time'。但是(在Win7 / 64上)从此函数返回的缓冲区为系统中运行的每个线程返回一个字符串,换句话说,它似乎已将输入视为'\Thread(*/*)\% Processor Time'。这是出乎意料的。当我随后扩展字符串以获得'ID Thread'时也会发生同样的情况。

显然,我可以在应用程序名称上过滤生成的字符串,只添加我需要的计数器,但这需要数百个子字符串扫描。我误解了通配符是如何工作的吗?

1 个答案:

答案 0 :(得分:0)

迟到了,但是我碰到了同一堵墙,也许其他人需要它:

这是:'\Thread(myappname*)\% Processor Time'

'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance'

中将ProcessNameFormat设置为2并将ThreadNameFormat设置为2时特别有用

对于ProcessNameFormat = 2 - > link,同样适用于ThreadNameFormat,尽管我找不到任何类型的文档。