我正在寻找一种不使用lodctr可执行文件注册到基于xml的性能计数器的方法。
虽然this questionthis 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的未来版本发生冲突。
最好的方法是调用LODCTRUNLODCTR以便在进程中安装/注册性能计数器。因为这些是命令行工具,所以它们可能会显示在一个命令(黑色)控制台窗口中。您可以使用管道隐藏输入/输出重定向,这样就不会出现控制台窗口。
请注意,这些工具不会占用太多时间或资源,因此从流程调用这些exe不会占用太多时间(用户不会注意到,甚至无法使用某些流程监视工具轻松找到答案)。
请注意,注册/注销PC是一项罕见的活动,因此Microsoft不会费心为您提供一个很好的可调用Windows API。

08-08 06:29