Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

Помогите!!!!   Найти похожие ветки 

 
Darlok   (2002-04-16 15:11) [0]

Как можно узнать, имеет ли пользователь, запустивший мою программу, права администратора.

Пишу следующее:
unit Priv;

interface
uses Types, Windows;
Type
PUSER_INFO_11 = ^USER_INFO_11;
_USER_INFO_11 = Record
usri11_name: PWideChar;
usri11_comment: PWideChar;
usri11_usr_comment: PWideChar;
usri11_full_name: PWideChar;
usri11_priv: DWORD;
usri11_auth_flags: DWORD;
usri11_password_age: DWORD;
usri11_home_dir: PWideChar;
usri11_parms: PWideChar;
usri11_last_logon: DWORD;
usri11_last_logoff: DWORD;
usri11_bad_pw_count: DWORD;
usri11_num_logons: DWORD;
usri11_logon_server: PWideChar;
usri11_country_code: DWORD;
usri11_workstations: PWideChar;
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 NetUserGetInfo (
servername: PWideChar;
username: PWideChar;
level: DWORD;
bufptr: Pointer
): DWord; stdcall; external "netapi32.dll";

Function NetApiBufferFree(
Buffer: Pointer
): DWORD; stdcall; external "netapi32.dll";


function isAdmin:Boolean;


implementation

function isAdmin:Boolean;
Var
login: PChar;
info: PUSER_INFO_11;
Size: Cardinal;
Begin
Result:=false;
// Выделяем память для переменных
GetMem (login,SizeOf (Char) * 256); GetMem(info,sizeOf(USER_INFO_11));

// Получаем логин пользователя, запустившего программу
GetUserName(login,Size);
// Получаем информацию о пользователе
if NetUserGetInfo (Nil, PWideChar(login), 11, @info)<>0 then exit;
// Определяем наличие административных привилегий
if Info^.usri11_priv=2 then Result:=true;

NetApiBufferFree( info );
FreeMem (login);
End;


end.


Оно кмпилится нормально, но NetUserGetInfo всегда выдает значение, отличное от 0. Чего делать, уже не занаю.


 
SerVS   (2002-04-16 15:39) [1]

Посмотреть этот пример на www.delphi.xonix.ru


 
Darlok   (2002-04-16 17:45) [2]

SerVS © (16.04.02 15:39)

Спасибо. Я там нашел подходящие примеры. :)


 
Bachin   (2002-04-16 20:30) [3]

сразу: PWideChar(login) !?


 
SerVS   (2002-04-16 21:59) [4]

>Darlok ©
А вот что я нашел в MSDN:
If the function succeeds, the return value is NERR_Success.
If the function fails, the return value can be one of the following error codes.
Она и недолжна возвращять ноль!
ЗЫ. Рад был помочь ;)


 
Raptor   (2002-04-16 22:48) [5]

2 SerVS
К твоему сведенью NERR_Success = 0 ;-))


 
Tosov   (2002-04-17 00:39) [6]

Попробуй GetUserNameW вместо GetUserName.


 
SerVS   (2002-04-17 00:58) [7]

>Raptor ©
Я не знал. Вообщето я предпочитаю писать так как советуют в MSDN, тогда вопросов меньше возникает.
ЗЫ. Если я правильно понял сообщение от Darlok © (16.04.02 17:45) то он уже все сделал, и нечего больше обсуждать



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
6-55248
JaMin
2002-04-09 16:14
2002.06.17
Подскажите кто знает!


14-55315
Anonymous
2002-05-16 17:45
2002.06.17
Б Е С П Р Е Д Е Л


3-55031
Z-man
2002-05-21 07:20
2002.06.17
Как написать Help для проги


1-55198
PTE
2002-06-04 17:59
2002.06.17
QReport, проблемы с выводом данных


14-55301
Alexandr
2002-05-15 11:31
2002.06.17
Decompress UPX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский