![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Наверно неправильно выразился. Под хозяином я имел в виду владельца приложения.