Dela via


Hur UAC (User Account Control) påverkar ditt program

User Account Control (UAC) är en funktion i Windows Vista där användarkonton har begränsad behörighet. Du hittar detaljerad information om UAC på dessa platser:

Skapa projekt efter aktivering av UAC

Om du skapar ett Visual Studio C++-projekt i Windows Vista med UAC inaktiverat och senare aktiverar UAC måste du rensa och återskapa projektet för att det ska fungera korrekt.

Program som kräver administrativ behörighet

Som standard bäddar Visual C++-länkaren in ett UAC-fragment i manifestet för ett program med körningsnivån asInvoker. Om ditt program kräver administratörsbehörighet för att köras korrekt (till exempel om det ändrar HKLM-noden i registret eller om det skrivs till skyddade områden på disken, till exempel Windows-katalogen), måste du ändra ditt program.

Det första alternativet är att ändra UAC-fragmentet i manifestet för att ändra körningsnivån till requireAdministrator. Programmet uppmanar sedan användaren att ange administrativa autentiseringsuppgifter innan det körs. Information om hur du gör detta finns i /MANIFESTUAC (Bäddar in UAC-information i manifest).

Det andra alternativet är att inte bädda in ett UAC-fragment i manifestet genom att ange alternativet /MANIFESTUAC:NO linker. I det här fallet körs ditt program virtualiserat. Alla ändringar som du gör i registret eller i filsystemet sparas inte när programmet har avslutats.

Följande flödesschema beskriver hur programmet körs beroende på om UAC är aktiverat och om programmet har ett UAC-manifest:

Flödesschema för Windows Loader-beteende.

Se även

Bästa praxis för säkerhet