プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

オブジェクト名の列挙

2007年10月07日 09時15分24秒 | パフォーマンス関連

オブジェクト名を列挙するにはPdhEnumObjects()関数を使います。
この関数で取得した文字列はNULL文字で区切られて最後にはもう一つNULL文字が追加します。
つまり[aaa][\0][bbb][\0][ccc][\0][\0]というイメージになります。(戻る)

プロトタイプ宣言

PDH_STATUS PdhEnumObjects(
  LPCTSTR szDataSource,      // ログファイル名
  LPCTSTR szMachineName,     // コンピュータ名
  LPTSTR mszObjectList,      // バッファ領域
  LPDWORD pcchBufferLength,  // バッファ容量のポインタ
  DWORD dwDetailLevel,       // 取得する詳細レベル
  BOOL bRefresh              // キャッシュから読み込む指定
);

サンプル

#include <stdio.h>
#include <windows.h>
#include <pdh.h>  // Pdh.Lib

// メイン関数
int main( void )
{
    TCHAR  szBuff[ 32 * 1024 ];
    DWORD  dwSize = sizeof(szBuff);
    LPTSTR lpBuff;
    
    // パフォーマンス・オブジェクト名の列挙
    PdhEnumObjects( NULL, NULL, szBuff, &dwSize, PERF_DETAIL_WIZARD, TRUE );
    for ( lpBuff = szBuff ; *lpBuff != '\0' ; lpBuff++ ){
        printf( "[%s]\n", lpBuff );
        lpBuff += lstrlen( lpBuff );
    }
    return 0;
}
  • ヘッダファイルとしてpdh.hをインクルードして下さい。
  • インポートライブラリとしてPdh.Libをリンクして下さい。

取得する詳細レベルには次の定数があります。

  1. 初心者ユーザーのレベル(PERF_DETAIL_NOVICE)
  2. 上級者ユーザーのレベル(PERF_DETAIL_ADVANCED)
  3. 専門家ユーザーのレベル(PERF_DETAIL_EXPERT)
  4. 設計者ユーザーのレベル(PERF_DETAIL_WIZARD)

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« コンピュータ名の列挙 | トップ | カウンタとインスタンスの列挙 »
最新の画像もっと見る

コメントを投稿

パフォーマンス関連」カテゴリの最新記事