PDA

Просмотр полной версии : Новый пользователь [Delphi]


marcos
24.12.2009, 17:26
Всем привет, подскажите можно ли написать на делфи программу, которая создавала бы пользователя в винде?

Chrome~
24.12.2009, 17:54
Кажется, можно.

marcos
24.12.2009, 17:56
Кажется, можно.

как?

Chrome~
24.12.2009, 18:06
Речь идет об обычном пользователе системы, или об пользователе для дедика?
Так или иначе, тебе нужно использовать команды cmd.

neprovad
24.12.2009, 18:09
NetUserAdd
http://msdn.microsoft.com/en-us/library/aa370649%28VS.85%29.aspx

marcos
24.12.2009, 18:22
NetUserAdd
http://msdn.microsoft.com/en-us/library/aa370649%28VS.85%29.aspx


Я к сожалению не знаю СИ... Возможно это на делфи?

.Slip
24.12.2009, 18:26
Я к сожалению не знаю СИ... Возможно это на делфи?
Это WinAPI а не СИ. Или английского тоже не знаешь?

marcos
24.12.2009, 18:43
Так а как это на Делфи Реализовать?

NetUserAdd(servername,level,buf,parm_err);

Так?

neprovad
24.12.2009, 18:43
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

LPUSER_INFO_2 = ^USER_INFO_2;
{$EXTERNALSYM LPUSER_INFO_2}
PUSER_INFO_2 = ^USER_INFO_2;
{$EXTERNALSYM PUSER_INFO_2}
_USER_INFO_2 = record
usri2_name: LPWSTR;
usri2_password: LPWSTR;
usri2_password_age: DWORD;
usri2_priv: DWORD;
usri2_home_dir: LPWSTR;
usri2_comment: LPWSTR;
usri2_flags: DWORD;
usri2_script_path: LPWSTR;
usri2_auth_flags: DWORD;
usri2_full_name: LPWSTR;
usri2_usr_comment: LPWSTR;
usri2_parms: LPWSTR;
usri2_workstations: LPWSTR;
usri2_last_logon: DWORD;
usri2_last_logoff: DWORD;
usri2_acct_expires: DWORD;
usri2_max_storage: DWORD;
usri2_units_per_week: DWORD;
usri2_logon_hours: PBYTE;
usri2_bad_pw_count: DWORD;
usri2_num_logons: DWORD;
usri2_logon_server: LPWSTR;
usri2_country_code: DWORD;
usri2_code_page: DWORD;
end;
{$EXTERNALSYM _USER_INFO_2}
USER_INFO_2 = _USER_INFO_2;
{$EXTERNALSYM USER_INFO_2}
TUserInfo2 = USER_INFO_2;
PUserInfo2 = puser_info_2;

function NetUserAdd(ServerName: LPCWSTR; Level: DWORD;
Buff: PByte; var Parm_Err: DWORD): DWORD; stdcall;
external 'netapi32.dll';

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
NERR_Success = 0;
USER_PRIV_USER = 1;
UF_SCRIPT = $0001;
UF_DONT_EXPIRE_PASSWD = $10000;
var
UserInfo: TUserInfo2;
Parm_Err: DWORD;
begin
ZeroMemory(@UserInfo, SizeOf(TUserInfo2));
UserInfo.usri2_name := 'TestUser';
UserInfo.usri2_password := '123';
UserInfo.usri2_priv := USER_PRIV_USER;
UserInfo.usri2_flags := UF_SCRIPT or UF_DONT_EXPIRE_PASSWD;
if NetUserAdd(nil, 2, @UserInfo, Parm_Err) <> NERR_Success then
RaiseLastOSError
else
ShowMessage('Пользователь TestUser с паролем 123 успешно добавлен.');
end;

end.

marcos
24.12.2009, 19:10
neprovad, код не работает(((Почему, может нужно чтото подключить?

neprovad
24.12.2009, 20:26
neprovad, код не работает(((Почему, может нужно чтото подключить?
подключить мозги, пиратскими версиями мозгов лучше не пользоваться, советую купить ибо недорого