In Vista en Windows 7 en later is een beveiligingsmechanisme genaamd UAC (User Account Control) toegevoegd, en als UAC is ingeschakeld, kunnen de gebruikers, zelfs als de gebruiker inlogt met beheerdersrechten, hun applicaties niet naar de systeemmap, het systeemregister en andere instellingen schrijven die standaard de normale werking van het systeem kunnen beïnvloeden. Dit mechanisme verbetert de beveiliging van het systeem aanzienlijk, maar voor applicatieontwikkelaars kunnen we gebruikers niet dwingen UAC uit te schakelen, maar soms moet de applicatie die we ontwikkelen wel op de manier van een beheerder draaien; hoe bereik je zo'n functie? Zo implementeert een C#-programma het verzoek om de gebruiker te laten uitvoeren met beheerdersrechten. In dit voorbeeld laat het WinForm-programma zien dat een nieuw project wordt gegenereerd en dienovereenkomstig wordt aangepast: Methode 1: Start via System.Diagnostics.Process.Start(): Implementatiemethode: Wijzig het standaard gegenereerde programmabestand, en de aangepaste code is als volgt: Aangezien de code al is besproken, zal er niet in detail op ingaan; Effect: Omdat het wordt gestart door de externe aanroep van System.Diagnostics.Process.Start() aan te roepen, zal VS bij directe uitvoering via VS niet worden gevraagd beheerdersrechten nodig te hebben; alleen het programma zelf heeft beheerdersrechten nodig, wat verschilt van het programma dat de applicatie genereert. Dit is het belangrijkste verschil met de implementatie van methode 2. Methode 2: Door een applicatiemanifestbestand toe te voegen: Selecteer op het programma Project Add New Item Application Manifest File en klik op de knop Toevoegen Eenmaal toegevoegd wordt het app.manifest-bestand standaard geopend, wat het volgende zal doen: Aangepast tot: Open vervolgens de Projecteigenschappen en pas het manifest aan in het tabblad Resources in het tabblad Applicaties naar het nieuwe app.manifest. Bouw het project opnieuw op, en wanneer je het programma opnieuw opent, krijg je de opdracht om het met beheerdersrechten uit te voeren. Let op: als je begint met debuggen in VS, krijg je te horen dat deze taak vereist dat de applicatie verhoogde rechten heeft. Zoals hieronder getoond: Selecteer Herstarten met andere inloggegevens om dit te doen. Methode 3: Wijzig direct de eigenschappen van het programmabestand Klik met de rechtermuisknop op het programmabestand in het tabblad Compatibiliteit in het venster Eigenschappen dat verschijnt Vink "Voer dit programma uit als beheerder".
|