SfondoConcessione dei privilegi di amministratore a un'applicazione avviata all'avvio senza prompt UAC?
ho scritto un piccolo C# /. NET applicazione 4.0 che sincronizza le varie impostazioni da un gioco installato in Programmi da e verso altre copie dello stesso gioco su macchine diverse (si pensi Chrome bookmark sync, ma per questo gioco). La sincronizzazione di per sé è relativamente semplice, trattando i file memorizzati nella cartella Programmi del gioco.
Sulla mia macchina, questo funziona correttamente senza dover elevare la mia domanda tramite UAC. Windows 7 rende il gioco utilizza la virtualizzazione dei Programmi e la mia applicazione funziona correttamente.
Tuttavia, su un sacco di macchine del tester, ricevo segnalazioni sul fatto che l'applicazione non può funzionare con i file e in alcuni casi non è nemmeno possibile vedere la cartella del gioco! Avere l'utente con il tasto destro del mouse e "Esegui come amministratore" risolve il problema in ogni caso.
Quindi, basta impostare manifest per richiedere i privilegi di amministratore, giusto? Va bene (anche se non è l'ideale) per quando l'utente richiama manualmente l'applicazione o il processo di sincronizzazione perché interagiranno con l'applicazione e sono pronti ad accettare una richiesta UAC.
Tuttavia, una delle funzionalità della mia applicazione è l'opzione "Sincronizza automaticamente", che consente all'utente di "impostare e dimenticare" l'applicazione. Con questo set, l'applicazione si inserisce nel Registro di sistema di HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run per essere eseguita all'avvio e si trova nella barra delle applicazioni sincronizzando le impostazioni in background secondo necessità.
Ovviamente, ho bisogno di essere più intelligente qui. Presentare un prompt UAC non appena l'utente accede al proprio account o ad intervalli casuali in seguito non è la strada da seguire.
Quindi, la mia domanda!
Qual è il modo migliore per affrontare una situazione in cui avrei bisogno di eseguire un'applicazione in fase di avvio che ha bisogno di privilegi di amministratore? C'è un modo per autorizzare l'utente a un'installazione che fa sì che il sistema esegua automaticamente l'applicazione con i privilegi corretti senza un prompt all'avvio/login?
Aggiornamento Giusto per essere chiari, questo deve essere raggiungibile nel codice.
Penso che questo ti illuminerà: http://stackoverflow.com/questions/2488632/win-c-run-app-as-administrator-without-uac-prompt/2488645#2488645 Cheers :) – Machinarius