![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите пжл перевести на делфи. С си плохо. А тут еще и векторы.
Код:
CString GetTokenUserSID(HANDLE hToken)
{
DWORD tmp = 0;
CString userName;
DWORD sidNameSize = 64;
std::vector<WCHAR> sidName;
sidName.resize(sidNameSize);
DWORD sidDomainSize = 64;
std::vector<WCHAR> sidDomain;
sidDomain.resize(sidNameSize);
DWORD userTokenSize = 1024;
std::vector<WCHAR> tokenUserBuf;
tokenUserBuf.resize(userTokenSize);
TOKEN_USER *userToken = (TOKEN_USER*)&tokenUserBuf.front();
if(GetTokenInformation(hToken, TokenUser, userToken, userTokenSize, &tmp))
{
WCHAR *pSidString = NULL;
if(ConvertSidToStringSid(userToken->User.Sid, &pSidString))
userName = pSidString;
if(NULL != pSidString)
LocalFree(pSidString);
}
else
_ASSERT(0);
return userName;
} |
|
#2
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
FProcessHandle, FTokenHandle: THandle;
FReturnLength: DWORD;
FUserToken: PTokenUser;
FStringSid: LPWSTR;
begin
FProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION, True, GetCurrentProcessId);
if FProcessHandle = 0 then
begin
RaiseLastOSError;
Exit;
end;
if OpenProcessToken(FProcessHandle, TOKEN_QUERY, FTokenHandle) = False then
begin
RaiseLastOSError;
Exit;
end;
GetTokenInformation(FTokenHandle, TokenUser, nil, 0, FReturnLength);
if FReturnLength = 0 then
begin
RaiseLastOSError;
Exit;
end;
GetMem(FUserToken, FReturnLength);
try
if not GetTokenInformation(FTokenHandle, TokenUser, FUserToken, FReturnLength, FReturnLength) then
begin
RaiseLastOSError;
Exit;
end;
if not ConvertSidToStringSid(FUserToken^.User.Sid, FStringSid) then
begin
RaiseLastOSError;
Exit;
end;
finally
FreeMem(FUserToken);
end;
MessageBox(Handle, FStringSid, nil, 0);
end; |
| Этот пользователь сказал Спасибо Zorkov Igor за это полезное сообщение: | ||
xteam777 (12.05.2018)
| ||
|
#3
|
|||
|
|||
|
Примного благодарен!!!
|