Форум: "WinAPI";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
ВнизЗнаю PID процесса как получить имя пользователя запустившего процесс Найти похожие ветки
← →
Bobr (2002-01-22 12:02) [2]Пытаюсь сделать это следующим образом, но что-то делаю не так - подскажите:
const TokenSize=800;
Var HNWD, _HNWD:THandle;
pTokenInfo:PTokenUser;
ReturnLen:Cardinal;
userbuffer:pchar;
usersize:dword;
compbuffer:pchar;
compsize:dword;
begin
GetMem(pTokenInfo,TokenSize);
HNWD:=OpenProcessPROCESS_QUERY_INFORMATION,FALSE,PID);
OpenProcessToken(HNWD,TOKEN_ALL_ACCESS,_HNWD);
GetTokenInformation(_HNWD,TokenPrivileges,pTokenInfo,TokenSize,ReturnLen);
LookupAccountSid(nil,pTokenInfo.SID.Sid,userbuffer,usersize,compbuffer,compsize,eUse);
userbuffer := PChar(GlobalAlloc(GMEM_FIXED,usersize));
compbuffer := PChar(GlobalAlloc(GMEM_FIXED,compsize));
LookupAccountSid(nil,pTokenInfo.SID.Sid,userbuffer,usersize,compbuffer,compsize,SID_NAME_USE);
showmessage(userbuffer);
showmessage(compbuffer);
FreeMem(pTokenInfo);
Где
PTokenUser = ^TTokenUser;
_TOKEN_USER = record
SID: SID_AND_ATTRIBUTES
end;
{$EXTERNALSYM _TOKEN_GROUPS}
TTokenUSER = _TOKEN_USER;
TOKEN_USER = _TOKEN_USER;
{$EXTERNALSYM TOKEN_GROUPS}
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c