2

アプリケーションのステータスの一部をパフォーマンス オブジェクトとして登録し、Windows パフォーマンス モニターを利用してそのパフォーマンスを監視できるようにしたいと考えています。

しかし、Windows 7 で問題が発生しました。アプリケーションが実行されていても、パフォーマンス オブジェクトがパフォーマンス モニターのリストに表示されません。

私のコードは、このチュートリアルの Delphi プロジェクトとまったく同じです: http://www.wehlou.com/Code/perfmon/index.htm

ただし、このチュートリアルで提供されているソリューションは、Windows 7 でも機能しません。

このようなソリューションは、Windows XP および2003 で正常に機能します。

Windows 7 にパフォーマンス オブジェクトが失われる変更があるかどうかはわかりません。

助けてください。事前に山ほど感謝します。

4

2 に答える 2

3

Windows 7コンピューターは64ビットマシンですか?32ビットバージョンと64ビットバージョンの両方を提供する必要がある場合があります。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa371636(v=vs.85).aspx

于 2012-04-17T06:49:16.960 に答える
0

簡単な答え:

はい、Windows 7 x32 で 2 つのオブジェクト パフォーマンス カウンター (DeltaCount & RawCount) の問題を手動で修正できます。PerfMonClient.exe によって生成された 2 つのファイル (symfile.h と symfile.ini) を使用できます。

注: の使用方法については、MSDN を参照してくださいlodctr.exe

その前に、次のようなレジストリへのエントリを作成する必要があります。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PerfMonClient\Performance]
"Open"="PerfData_Open"
"Close"="PerfData_Close"
"Collect"="PerfData_Collect"
"Library"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,50,\
  00,65,00,72,00,66,00,4d,00,6f,00,6e,00,44,00,4c,00,4c,00,2e,00,64,00,6c,00,\
  6c,00,00,00

注: ライブラリは %SystemRoot%\System32\PerfMonDLL.dll (パフォーマンス DLL の場所) を指します。

PerfMonClient.exe アプリを使用してそれらをインストールおよび/またはアンインストールしようとしても、Windows XP でも機能しません。それを忘れる。


見て感じる:

PerMonClient1

PerMonClient2


上場

symfile.h:

#define OBJECT_1   0
#define DEVICE_COUNTER_1   2
#define DEVICE_COUNTER_2   4

symfile.ini:

[info]
drivername=PerfMonClient
symbolfile=symfile.h
[languages]
009=English
[text]
OBJECT_1_009_NAME=PerfMonTest Performance Counters
OBJECT_1_009_HELP=A demo application for your unbridled pleasure
DEVICE_COUNTER_1_009_NAME=RawCount
DEVICE_COUNTER_1_009_HELP=A count of something that goes up and down
DEVICE_COUNTER_2_009_NAME=DeltaCount
DEVICE_COUNTER_2_009_HELP=Something going up all the time, Windows shows difference per time unit
于 2012-04-24T18:24:21.460 に答える