我正在寻找一种不使用lodctr
可执行文件注册到基于xml的性能计数器的方法。
虽然this question和this question对这个问题有了一些了解,但没有一个能给出正确的解决方案。
函数LoadPerfCounterTextStrings
似乎起到了作用,但似乎没有将xml作为输入(即/M
命令的lodctr
参数)。该函数无论如何都会调用lodctr
命令,但会使程序员避免以编程方式调用lodctr.exe
。
是否有调用此函数(或任何其他函数)的方法,其行为类似于:
lodctr.exe /M:xmlfile.xml
?
不过,windows xp中只提供了一个
LoadPerfCounterTextStrings
的附加信息,新的api(perflib 2)只有在vista之后才可用。我在用v2。 最佳答案
我不认为这是可能的,至少用一种记录在案的方式。如果您发现并使用一些未记录的方式,它可能会与某些OS/Service Pack或Windows的未来版本发生冲突。
最好的方法是调用LODCTR
和UNLODCTR
以便在进程中安装/注册性能计数器。因为这些是命令行工具,所以它们可能会显示在一个命令(黑色)控制台窗口中。您可以使用管道隐藏输入/输出重定向,这样就不会出现控制台窗口。
请注意,这些工具不会占用太多时间或资源,因此从流程调用这些exe不会占用太多时间(用户不会注意到,甚至无法使用某些流程监视工具轻松找到答案)。
请注意,注册/注销PC是一项罕见的活动,因此Microsoft不会费心为您提供一个很好的可调用Windows API。