Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
(delphi)Функции определения прав пользователя...Проверено на xp.
//пример: //if isAdmin then ...
unit isadminus;
interface uses Windows, Classes, SysUtils;
var sdir : Array[0..260] of char; t:textfile; Type PUSER_INFO_11 = ^USER_INFO_11; _USER_INFO_11 = Record usri11_name: LPWSTR; usri11_comment: LPWSTR; usri11_usr_comment: LPWSTR; usri11_full_name: LPWSTR; usri11_priv: DWORD; usri11_auth_flags: DWORD; usri11_password_age: DWORD; usri11_home_dir: LPWSTR; usri11_parms: LPWSTR; usri11_last_logon: DWORD; usri11_last_logoff: DWORD; usri11_bad_pw_count: DWORD; usri11_num_logons: DWORD; usri11_logon_server: LPWSTR; usri11_country_code: DWORD; usri11_workstations: LPWSTR; usri11_max_storage: DWORD; usri11_units_per_week: DWORD; usri11_logon_hours: Pointer; usri11_code_page: DWORD; End; USER_INFO_11=_USER_INFO_11; function isAdmin:Boolean;
implementation Function NetUserGetInfo ( servername: LPWSTR; username: LPWSTR; level: DWORD; bufptr: Pointer ): DWord; stdcall; external 'netapi32.dll';
Function NetApiBufferFree( Buffer: Pointer ): DWORD; stdcall; external 'netapi32.dll';
function isAdmin:Boolean; Var login: PWideChar; info: PUSER_INFO_11; size : Cardinal; Begin Result:=false; info:=nil;
// Получаем логин пользователя, запустившего программу size:=0; login:=nil; GetUserNameW (login, size);
// Выделяем память для переменных GetMem (login,SizeOf (WideChar) * size); GetUserNameW (login, size); // Получаем информацию о пользователе if NetUserGetInfo (Nil, login, 11, @info)=0 then // if Info.usri11_priv=2 then Result:=true;
if info<>nil then NetApiBufferFree( info ); FreeMem (login); End;
end.
|
Категория: Cтатьи по delphi | Добавил: xcodemaster (05.01.2012)
|
Просмотров: 19850 | Комментарии: 4
| Рейтинг: 5.0/1 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
|