<Return[G]><Top>

GetServiceKeyName

Declare Function Api_GetServiceKeyName& Lib "advapi32" Alias "GetServiceKeyNameA" (ByVal hSCManager&, ByVal lpDisplayName$, ByVal lpServiceName$, lpcchBuffer&)

Declare Function GetServiceKeyName Lib "advapi32" Alias "GetServiceKeyNameA" (ByVal hSCManager As Long, ByVal lpDisplayName As String, ByVal lpServiceName As String, lpcchBuffer As Long) As Long

特定のサービスの表示名に関連付けられているサービス名を取得する。

パラメータ
hSCManager
    [入力] OpenSCManager 関数が返した、コンピュータのサービス制御マネージャのデータベースのハンドルを指定する。
lpDisplayName
    [入力]サービスの表示名を表す NULL で終わる文字列へのポインタを指定する。
lpServiceName
    [出力]サービス名を受け取るバッファへのポインタを指定する。この関数が失敗すると、このバッファには空文字列が格納される。
lpcchBuffer
    [入出力]lpServiceName パラメータが指すバッファのサイズを文字数で指定する変数へのポインタを指定する。この関数が制御を戻す

    と、このパラメータはサービス名のサイズを、終端記号 NULL を除いた文字数で受け取る。
    lpServiceName が指すバッファが小さすぎてサービス名全体を格納できない場合、この関数はサービス名をバッファに書き込まない。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、 関数を使う。

解説
    各サービスには、サービス名と表示名の 2 つの名前が割り当てられている。サービス名とは、レジストリ内のサービスに対応するキー名のこ

    とである。表示名とは、コントロールパネルの[サービス]アプリケーションで表示される、ユーザーにとってわかりやすい名前のことであり、

    この名前は NET START コマンドでも使われる。サービス名を表示名に変換するには、GetServiceDisplayName 関数を使う。表示名を

    サービス名に変換するには、GetServiceKeyName 関数を使う。