最終更新 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() を使っても結果は同じです。
お好みでどうぞ。
|