<Return[G]><Top>

GetComputerNameEx

Declare Function Api_GetComputerNameEx& Lib "kernel32" Alias "GetComputerNameExA" (ByVal NameType&, ByVal lpBuffer$, lpnSize&)

Declare Function GetComputerNameEx Lib "kernel32" Alias "GetComputerNameExA" (ByVal NameType As Long, ByVal lpBuffer As String, lpnSize As Long) As Long

ローカルコンピュータの NetBIOS 名または DNS 名を取得する。これらの名前は、システムの起動時、システムがレジストリから読み取ることによって確定する。GetComputerName 関数で取得できる NetBIOS 名に加え、この関数は完全修飾 DNS 名、DNS ホスト名、DNS ドメイン名も取得できる。ローカルコンピュータがクラスタ内のノードである場合は、クラスタの名前またはローカルコンピュータの名前のどちらか一方を取得できる。

パラメータ
NameType
    取得する名前の種類を指定する。次に示す COMPUTER_NAME_FORMAT 列挙型のいずれかの値を使う。

    値                                                       

意味                                                                                                             

    ComputerNameNetBIOS

ローカルコンピュータの NetBIOS 名を取得する。ローカルコンピュータがクラスタ内のノードの 1つ

である場合は、クラスタの NetBIOS 名を取得する。

    ComputerNameDnsHostname

ローカルコンピュータの DNS ホスト名を取得する。ローカルコンピュータがクラスタ内のノードの 1

つである場合は、クラスタの DNS ホスト名を取得する。

    ComputerNameDnsDomain

ローカルコンピュータに割り当てられている DNS ドメインの名前を取得する。ローカルコンピュータ

がクラスタ内のノードの 1 つである場合は、クラスタの DNS ドメイン名を取得する。

    ComputerNameDnsFullyQualified

ローカルコンピュータを一意に識別する完全修飾 DNS 名を取得する。この名前は、DNS ホス

ト名と DNS ドメイン名を HostName.DomainName の形式で組み合わせたものである。ローカ

ルコンピュータがクラスタ内のノードの 1 つである場合は、クラスタの完全修飾 DNS 名を取得

する。

    ComputerNamePhysicalNetBIOS

ローカルコンピュータの NetBIOS 名を取得する。ローカルコンピュータがクラスタ内のノードの 1 つ

である場合は、クラスタではなく、ローカルコンピュータの NetBIOS 名を取得する。

    ComputerNamePhysicalDnsHostname

ローカルコンピュータの DNS ホスト名を取得する。ローカルコンピュータがクラスタ内のノードの 1

つである場合は、クラスタではなく、ローカルコンピュータの DNS ホスト名を取得する。

    ComputerNamePhysicalDnsDomain

ローカルコンピュータに割り当てられている DNS ドメインの名前を取得する。ローカルコンピュー

タがクラスタ内のノードの 1 つである場合は、クラスタではなく、ローカルコンピュータの DNS ド

メイン名を取得する。

    ComputerNamePhysicalDnsFullyQualified

コンピュータを一意に識別する完全修飾 DNS 名を取得する。ローカルコンピュータがクラスタ

 

タ内のノードの 1 つである場合は、クラスタではなく、ローカルコンピュータの完全修飾 DNS 名

 

を取得する。

    この完全修飾 DNS 名は、DNS ホスト名と DNS ドメイン名を HostName.DomainName の形式で組み合わせたものである。
lpBuffer
    コンピュータ名を表す NULL で終わる文字列を受け取るバッファへのポインタを指定する。
    DNS 名には MAX_COMPUTERNAME_LENGTH 文字より長い文字を使うことができるため、バッファの長さをそれより長くすることができ

    る。特定の種類の名前を取得するために必要なバッファのサイズを調べるには、NameType をその種類の値に設定し、lpBuffer を NULL

    に設定し、*nSize を 0 に設定して、この関数を呼び出す。関数が制御を戻すとき、*nSize が必要なサイズに設定される。
nSize
    DWORD 変数へのポインタを指定する。この変数は、バッファのバイト数(ANSI 版)または文字数(Unicode 版)に設定しておく。

    関数から制御が戻るとき、この変数は、lpBuffer が指すバッファにコピーされたバイト数または文字数に設定される。

    その値には、終端の NULL 文字が含まれる。
    バッファが小さくて名前が入りきらないときは、GetLastError 関数が ERROR_BUFFER_OVERFLOW を返し、変数は終端の NULL 文

    字を含む必要なバッファのサイズに設定される。

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

解説
    この関数で取得する NetBIOS 名または DNS 名は、システムの起動時に確定されたものである。SetComputerName 関数または

    SetComputerNameEx 関数を使って名前を変更しても、ユーザーがコンピュータを再起動するまで、この関数で得られる名前は変わらな

    い。