Форум: "Система";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
ВнизКак в NT-ях разрешить программе редактировать реестр текущего пользователя? Найти похожие ветки
← →
Nomad (2001-12-31 18:30) [4]Мда.. кто чем занят в новогоднюю ночь..
Написал я процедурки доставания SIDа.. Может, кому пригодится..
function Sid2Text(ps:PSID):string;
var
psia:PSIDIDENTIFIERAUTHORITY;
dwSubAuthorities,i:word;
dwSidRev:word;
begin
if IsValidSid(ps) then
begin
psia:= GetSidIdentifierAuthority(ps);
dwSubAuthorities:=GetSidSubAuthorityCount(ps)^;
dwSidRev:=1;
result:="S-"+inttostr(dwSidRev);
with psia^ do
if (value[0]<>0) and (value[1]<>0) then
for i:=0 to 5 do result:=result+inttostr(value[i]) else
result:=result+"-"+inttostr(Value[5]+(Value[4] shl 8)+(Value[3] shl 16)+(Value[2] shl 24));
for i:=0 to dwSubAuthorities-1 do
result:=result+"-"+inttostr(GetSidSubAuthority( ps, i )^);
end;
end;
Procedure GetCurrentSid(var S:PSID);
var
ReferencedDomain:LPSTR;
cbSid,cbReferencedDomain:DWORD;
peUse:SID_NAME_USE;
begin
cbSID:=128;
cbReferencedDomain:=16;
GetMem(S,cbsid);
GetMem(ReferencedDomain,cbReferencedDomain);
LookupAccountName("","User",S,cbSID,ReferencedDomain,cbReferencedDomain,peUse);
FreeMem(ReferencedDomain);
end;
var
sid: PSID;
begin
getcurrentsid(sid);
MessageDlg(sid2text(sid),mtInformation,[mbOK],0);
if sid<>nil then FreeMem(sid);
end.
Сейчас ищу, как корректно средствами системы запустить программу с запросом пароля администратора.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c