ユーザ名の列挙


ゆみこ  2009-04-30 16:06:02  No: 34232  IP: 192.*.*.*

ご質問させて戴きます。
ユーザアカウントを列挙したいのですが、どうすればよろしいでしょうか?
現在のログインユーザは、簡単に参照できるのですが、良い方法があれば、
ご教授お願いします。

編集 削除
DEKO  2009-04-30 22:14:47  No: 34233  IP: 192.*.*.*

Win32API の NetUserEnum() を使います。
具体的なサンプルコードは以下にあります。

[Torrys's Delphi]
http://www.swissdelphicenter.ch/torry/showcode.php?id=428

編集 削除
ofZ  2009-05-01 10:08:19  No: 34234  IP: 192.*.*.*

ここまで必要ないとは思いますが、Project JEDI のページに、
関連定義のライブラリもあります。

LanManager.zip
http://www.delphi-jedi.org/apilibrary.html
(Mozilla Public License Version 1.1)

ちなみに、取得するユーザーアカウントの内容にもよりますが、
アカウント名だけよければ、DEKOさん紹介のサンプルを以下のように
変更することで、アカウント名のみ取得できるはずです。

  USER_INFO_0  = record
    usri0_name: LPWSTR;
  end;
var
  UserInfo: lpUSER_INFO_0;
begin
  //略
  //NetUserEnumの第二引数が「0」になります
  NetApiStatus := NetUserEnum(nil, 0, 0, lpBuffer, 0, EntiesRead,
      TotalEntries, ResumeHandle);
  //略

編集 削除