UAC a programování aplikací, které zasahují do registru - DELPHI
Dnešní článek je spíš bleskovka o problému, který jsem nedávno řešil - jednalo se o přístup aplikace k registrům pod systémem Windows XP, Vista a Win7. Ne vždy je to tak jednoduché jak se zdá...

Zapsání hodnot do registru v DELPHI
První důležitou věcí je, načíst si knihovnu přistupující k registrům:
uses
Registry
...dále do položky s proměnnými zavedeme práci s registry:
var
reg: TRegistry;
...a teď samotný kod pro zápis / čtení registru:
begin
reg := TRegistry.Create; // vytvori reg
reg.RootKey := HKEY_CURRENT_USER; // korenovy klic
reg.OpenKey('\software\',true); //otevre klic
reg.WriteString('cti','ahoj'); // zapise string
reg.WriteInteger('cti',123); // zapíše integer
reg.WriteBool('cti',true); // zapíše boolean
ShowMessage(reg.ReadString('cti')); // přečte string
ShowMessage(reg.ReadInteger('cti'));// přečte integer
ShowMessage(reg.ReadBool('cti')); // přečte boolean
reg.CloseKey; //zavre klic
reg.Free; // uvolni reg
end;
Program funguje na Win XP, ale na novějších ne!
Novější operační systémy Windows mají v rámci "zvyšování bezpečnosti" prazvláštní funkci. Mají "virtuální" Program Files a Registry - když do těchto míst zapisujeme bez povolení správce systému, náš zápis jde právě do onoho virtuálního prostředí. Společně se zapsáním do virtuálního prostředí by se měl vytvořit link, aby program daný zápis našel - ovšem, u některých aplikací se mi tak nědělo.
Řešením je vyvolání dialogového okna UAC a následně po odkliknutí dotazu spustit program jako "správce".
Jak dialogové okno vyvolat?
Jelikož zápis do registru potřebujeme většinou při instalaci programu, je nejednodušším řešením to nejméně pravděpodobné. Pokud se váš program jmenuje například "spustit.exe" a zapisuje do registrů, po spuštění do skutečného registru nezapíše a ani UAC nic nehlásí. Vyvolání UACu docílíme tak, že pojmenujeme náš spustitelný soubor jako
Jak jednoduché, u ikonky programu se zobrazí štítek, že program vyžaduje povolení a po spuštění o něj skutečně zažádá - po potvrzení jsme tam, kde jsme být chtěli.
Při používání registru se zamyslete, proč vlastně programátoři microsoftu virtuální registr zavedli, určitě najdete minimálně jeden důvod - tak s registry zacházejte opatrně a rozumně. Nechť se daří

Komentáře
Ačkoliv si myslím, že funkce UAC skutečně hodně navýší bezpečnost,
nedokážu si představit člověka, který má nervy na to, to mít zapnuté.
(tvé captcha na 1m vzdáleném monitoru nedokážu přečíst)