
14.11.2012, 13:43
|
Начинающий
|
|
Регистрация: 13.02.2010
Сообщения: 104
Репутация: 10
|
|
Цитата:
Сообщение от poli-smen
Смотри в статье " Защита объектов в NT" функцию GetUserSIDStr.
Используешь её так:
Код:
if GetUserSIDStr('', UserName) = 'S-1-5-18' then ShowMessage('Это система');
|
сгруппировал) вот что получилось)
Код:
function isSystemProcess:boolean;
var
UserName :PChar;
UserNameLen:LongWord;
PSID, PRef: Pointer;
SIDSize, RefSize, peUse: Cardinal;
sSID:Pchar;
begin
result:=false;
UserNameLen := 255;
GetUserName(UserName,UserNameLen);
SIDSize:=0;
RefSize:=0;
LookupAccountName('',UserName,nil,SIDSize,nil,RefSize,peUse);
GetMem(PSID,SIDSize);
GetMem(PRef,RefSize);
try
if(LookupAccountName('',UserName,PSID,SIDSize,PRef,RefSize,peUse))then
ConvertSidToStringSid(PSID,sSID);
result:=sSID='S-1-5-18';
finally
FreeMem(PRef);
FreeMem(PSID);
end;
end;
|