2017-06-09 1 views
5

Ich bin auf der Suche nach einem Ansatz, um XML-basierte Leistungsindikatoren ohne Verwendung von lodctr ausführbare zu registrieren.Registrieren Leistungsindikator ohne Lodctr

Während this question und this question hat einige Einblicke in das Problem gegeben, gibt keiner eine richtige Lösung.

Die Funktion LoadPerfCounterTextStrings scheint den Trick zu tun, aber scheint nicht XML als Eingabe (das heißt /M Argument für lodctr Befehl) zu übernehmen. Die Funktion würde trotzdem den Befehl lodctr aufrufen, aber den Programmierer davor bewahren, programmgesteuert lodctr.exe aufzurufen.

Gibt es einen Ansatz, um diese Funktion aufzurufen (oder irgendeine andere), die als ob verhalten würde:

lodctr.exe /M:xmlfile.xml 

?

Nur eine zusätzliche Information, dass LoadPerfCounterTextStrings in Windows XP verfügbar ist, die neue API (Perflib) ist jedoch nur nach Vista verfügbar. Ich benutze V2.

+0

Ich glaube nicht, dass es eine API dafür gibt. Ich denke, es ist direkt in lodctr.exe leider getan (wenn Sie direkt in der exe schauen, werden Sie alle für die Arbeit benötigten Registrierungsstrings sehen: "_V2Providers, etc.) –

Antwort

1

Ich glaube nicht, dass es möglich ist, zumindest mit einem dokumentierten Weg. Wenn Sie eine undokumentierte Art finden und verwenden, kann es mit einigen OS/Service Pack oder mit zukünftigen Versionen von Windows brechen.

Am besten wählen Sie LODCTR und UNLODCTR für die Installation/Registrierung von Leistungsindikatoren in Ihrem Prozess. Da dies Befehlszeilenwerkzeuge sind, würden sie wahrscheinlich mit einem Befehlsfenster (schwarz) angezeigt. Sie können die Eingabe/Ausgabe-Umleitung mit Pipes ausblenden, sodass das Konsolenfenster nicht angezeigt wird.

Beachten Sie, dass diese Tools nicht viel Zeit oder Ressourcen beanspruchen. Daher dauert das Aufrufen dieser EXEs aus Ihrem Prozess nicht viel Zeit (der Benutzer merkt dies nicht und kann auch nicht so einfach herausfinden mit einem Prozessüberwachungstool).

Beachten Sie, dass das Registrieren/Aufheben der Registrierung von PCs eine seltene Aktivität ist - Microsoft wird sich daher nicht darum kümmern, Ihnen eine aufrufbare Windows-API zur Verfügung zu stellen.

Verwandte Themen