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

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

SID хозяина приложения [D7]


.Дима ©   (2004-02-11 22:55:00) 

Не подскажите как получить SID хозяина приложения. Если можно приведите примерчик.


Игорь Шевченко   (2004-02-12 17:41:00) [1]


type
 ZString = array[0..1024] of char;

function SIDToName (const SID: PSID): string;
var
 Use : SID_NAME_USE;
 DomainName : ZString;
 DomainNameLength : DWORD;
 Name : ZString;
 NameLength : DWORD;
begin
 if not LookupAccountSid(nil, SID, Name, NameLength, DomainName,
    DomainNameLength, Use) then
   RaiseLastWin32Error;
 Result := Name;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 AccessToken : THandle;
 Info : PSIDANDATTRIBUTES;
 ReturnLength : DWORD;
begin
 Win32Check(OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, AccessToken));
 GetMem (Info, 1024);
 try
   Win32Check(GetTokenInformation(AccessToken, TokenUser, Info, 1024,
     ReturnLength));
   ShowMessage(SidToName(Info^.Sid));
 finally
   FreeMem(Info);
 end;
end;



1024 взято с потолка.


Игорь Шевченко   (2004-02-12 17:30:00) [2]

.Дима   (12.02.04 16:45)


> А можно немного подробнее?


Это как ? Код вместо тебя написать ? ;)


.Дима   (2004-02-12 16:45:00) [3]

А можно немного подробнее?


Игорь Шевченко   (2004-02-12 10:39:00) [4]

var
 AccessToken : THandle;

begin
 Win32Check(OpenProcessToken (GetCurrentProcess(), TOKEN_QUERY, AccessToken));
 Win32Check(GetTokenInformation(.........))


.Дима   (2004-02-11 22:56:00) [5]

Наверно неправильно выразился. Под хозяином я имел в виду владельца приложения.


Наверх

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