コンピューター名とユーザー名を調べる

最終更新 2003 10/15

サンプルのダウンロード → API_GetComputerName.lzh(43k)

サンプルプログラムのスクリーンショット

サンプルソースコード



GetComputerName 関数
	
	対応しているバージョン
	95, 98, Me, NT3.1以降, 2000, XP
		
	使用するヘッダとライブラリ
	winbase.h
	kernel32.lib
	
GetUserName 関数

	対応しているバージョン
	95, 98, Me, NT3.1以降, 2000, XP
		
	使用するヘッダとライブラリ
	winbase.h
	advapi32.lib
コンピューター名を取得するには GetComputerName() 関数を使います。 ユーザー名を取得するには GetUserName() 関数を使います。 そのまんまです。 GetUserName() 関数を使うのに advapi32.lib というライブラリが 必要です。 サンプルのように #pragma comment を使って読み込むとよいかと 思います。 メニューの [プロジェクト(P)] - [設定(S)] - [リンク]タブの [オブジェクト/ライブラリモジュール] に advapi32.lib を追加してもよいです。 どちらも効果は同じです。 使い方は簡単です。 コンピューター名、ユーザー名を格納するための char 型の配列と 配列のサイズを格納した DWORD 型の変数のポインタを指定するだけです。 サイズの指定は、ポインタを使うことに注意しましょう。
char name[省略]; DWORD size; GetComputerName( name, &size );
サンプルではSTLの string を使って、もっと簡単な関数にしてます。 string を使うと、VBやJavaScriptみたいに文字列を簡単に 扱うことができます。 使用するには、サンプルのように string をインクルードして using namespace std; という一行を書いてやります。 サンプルで作った関数の使い方は
#include <string> using namespace std; string com_name = GetComputerName(); string usr_name = GetUserName();
com_name と usr_name を char 型の配列にコピーして使いたい時は //com_name,usr_name に格納されている文字データを //char 型の配列にコピー char com[ MAX_COMPUTERNAME_LENGTH + MAX_COMPUTERNAME_LENGTH ]; char usr[ 512 ]; wsprintf( com, "%s", com_name.c_str() ); wsprintf( usr, "%s", usr_name.c_str() ); こんなふうにします。 wsprintf() の部分は strcpy() を使っても結果は同じです。 お好みでどうぞ。

| home |