2017-06-09 40 views
5

我正在尋找一種方法來註冊到基於XML的性能計數器,而不使用lodctr可執行文件。註冊性能計數器沒有lodctr

雖然this questionthis question已經給出了一些洞察問題,但沒有給出正確的解決方案。

功能LoadPerfCounterTextStrings似乎這樣的伎倆,但似乎並沒有把XML作爲輸入(即/M論據lodctr命令)。該函數無論如何會調用lodctr命令,但會以編程方式保存程序員免於調用lodctr.exe

是否有一種方法來調用這個函數(或任何其他),將表現得好像:

lodctr.exe /M:xmlfile.xml 

然而,只有在Windows XP中有LoadPerfCounterTextStrings可用的其他信息,但是新的API(perflib )僅在Vista之後纔可用。我正在使用V2。

+0

我不認爲有這樣的API。不幸的是,我認爲它是直接在lodctr.exe中完成的(如果你直接看看exe文件,你會看到工作所需的所有註冊表字符串:「_V2Providers」等) –

回答

1

我不認爲這是可能的,至少有文件記錄的方式。如果您發現並使用某種未公開的方式,則可能會因某些操作系統/服務包或未來版本的Windows而中斷。

最好的選擇是你打電話LODCTRUNLODCTR安裝/註冊你的過程中的性能計數器。由於這些是命令行工具,它們可能會顯示一個命令(黑色)控制檯窗口。您可以使用輸入/輸出重定向來隱藏管道,以便控制檯窗口不會出現。

請注意,這些工具不佔用太多時間或資源,因此從您的流程中調用這些EXE不會花費太多時間(用戶不會注意到,甚至無法輕鬆地進行計算用一些過程監控工具)。

請注意,註冊/註銷PC是一種罕見的活動 - 因此微軟不會費心爲您提供一個很好的可調用Windows API。