Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавить пользователя в вин 2000 средствами делфи [Win2k]


bgs ©   (2004-10-04 18:48:00) 

сабж. желательно использование апи функций.
если можно, поподробнее.
заранее спасибо. ;)


Дмитрий Ботвин   (2004-10-05 08:08:00) [1]

procedure TForm2.AddUserClick(Sender: TObject);
 var buf: Pointer;
     UserInfo: TAddUserInfo;
     error: NET_API_STATUS;
     parm_err: DWORD;
     HostName,User_Name,Passw: WideString;
 begin
   HostName:=WideString('\\'+Trim(Form1.CompName.Text));
   User_Name:=WideString(Trim(UserName.Text));
   Passw:=WideString(Trim(Password.Text));
   UserInfo.usri1_name:=PWideChar(User_Name);
   UserInfo.usri1_password:=PWideChar(Passw);
   UserInfo.usri1_password_age:=0;
   UserInfo.usri1_priv:=USER_PRIV_USER;
   UserInfo.usri1_home_dir:='';
   UserInfo.usri1_comment:=PWideChar(WideString('Создан программой NetAdmin'));
   UserInfo.usri1_flags:=UF_SCRIPT or
                         UF_DONT_EXPIRE_PASSWD or
                         UF_NORMAL_ACCOUNT or
                         UF_PASSWD_CANT_CHANGE;
   UserInfo.usri1_script_path:='';
   buf:=@UserInfo;
   error:=NetUserAdd(PWideChar(HostName),1,buf,parm_err);
   case error of
     ERROR_ACCESS_DENIED: Application.MessageBox('Пользователю недостаточно прав для выполнения функции!',
                          'Ошибка',MB_OK+MB_ICONSTOP);
     NERR_InvalidComputer: Application.MessageBox('Неверное имя компьютера!',
                          'Ошибка',MB_OK+MB_ICONSTOP);
     NERR_NotPrimary: Application.MessageBox('Операция разрешена только для главного контроллера домена!',
                          'Ошибка',MB_OK+MB_ICONSTOP);
     NERR_GroupExists: Application.MessageBox('Группа пользователей уже существует!',
                          'Ошибка',MB_OK+MB_ICONSTOP);
     NERR_UserExists: Application.MessageBox('Пользователь уже существует!',
                          'Ошибка',MB_OK+MB_ICONSTOP);
     NERR_PasswordTooShort: Application.MessageBox('Слишком короткий пароль!',
                          'Ошибка',MB_OK+MB_ICONSTOP);
   else
     Users.Items.Add(Trim(UserName.Text));
   end;
 end;


Cobalt   (2004-10-05 00:26:00) [2]

NetUserAdd + F1 + www.google.com


Наверх

Титульная страница Поиск, карта сайта Написать письмо