Richiesta di privilegi di amministratore durante il runtime
Domanda
Come faccio a richiedere privilegi di amministratore durante il runtime in modo che l'utente è data la richiesta di consentire o meno vero?
Soluzione
Questa informazione viene scritta nel file exe manifesto. È necessario utilizzare il campo requestedExecutionLevel
(ma non sicuro di questo - provare a impostare a highestAvailable
e vedere se fa quello che ti serve). Si veda ad esempio qui per maggiori informazioni (articolo un po 'più vecchio ma ancora valido): http://blogs.msdn.com/b/cjacks/archive/2006/09/08/exploring- manifesta-part-2-default-namespace-e-UAC-manifesta-in-finestre-vista.aspx
Ci sono strumenti in Visual Studio che consentono di incorporare il proprio manifesto o anche solo modificarlo. Inoltre v'è uno strumento scritto in Perl ( http://metacpan.org/pod/Win32 :: :: Exe manifesto ).
EDIT: vedi questo articolo per ulteriori informazioni: http://www.codeproject.com/Articles/66259/Requesting-Admin-Approval-at-Application-Start.aspx
Altri suggerimenti
se si vuole che, in risposta a un pulsante (ad esempio, come 'processi spettacolo per tutti gli utenti' nel task manager), è necessario Resart vostra applicazione utilizzando il seguente metodo
ShellExecute(0,L"runas",exepath,0,0,SW_SHOWNORMAL);