WIn32API Windowsサービスのサービス名から表示名を取得する
サービス名から表示名を取得するには、GetServiceDisplayName関数を用いる。
GetServiceDisplayName関数のプロトタイプは以下のとおり
BOOL GetServiceDisplayName( SC_HANDLE hSCManager, // SCM データベースのハンドル LPCTSTR lpServiceName, // サービス名 LPTSTR lpDisplayName, // 表示名 LPDWORD lpcchBuffer // 表示名バッファのサイズ );
#include <windows.h> #include <stdio.h> #include <locale.h> int main() { SC_HANDLE hSCM; TCHAR lpDisplayName[512]; DWORD dwBytesNeeded; setlocale(LC_ALL, setlocale(LC_ALL, ""));//Unicode文字列をコンソールに表示させるため hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE); if (hSCM == NULL) { return 1; } dwBytesNeeded = sizeof(lpDisplayName)/sizeof(lpDisplayName[0]); GetServiceDisplayName(hSCM, TEXT("aspnet_state"), lpDisplayName, &dwBytesNeeded); _tprintf(TEXT("%s\n"), lpDisplayName); CloseServiceHandle(hSCM); return 0; }
ASP.NET 状態サービス
http://msdn.microsoft.com/ja-jp/library/cc429142.aspx