Maison >développement back-end >C++ >Comment puis-je exécuter par programme des processus avec des privilèges élevés en C #?
Élévation programmatique des privilèges de processus dans C #
De nombreuses applications nécessitent des privilèges élevés pour effectuer certaines tâches, telles que l'installation de services en utilisant InstallUtil.exe
. La méthode standard Process.Start
, cependant, fonctionne avec les autorisations par défaut de l'application. Cet article montre comment exécuter des processus avec des privilèges élevés en C #.
Considérez l'extrait de code suivant:
<code class="language-csharp">ProcessStartInfo startInfo = new ProcessStartInfo(m_strInstallUtil, strExePath); System.Diagnostics.Process.Start(startInfo);</code>
Ce code lance un processus avec des autorisations utilisateur standard. Pour élever les privilèges, modifiez startInfo
:
<code class="language-csharp">startInfo.UseShellExecute = true; startInfo.Verb = "runas";</code>
Réglage UseShellExecute
pour true
et Verb
à "runas"
Insigne du système de lancer le processus avec des autorisations élevées, similaires au clic droit et à la sélection de "Exécuter comme administrateur". Cette méthode déclenche l'invite de contrôle du compte utilisateur (UAC), nécessitant une confirmation de l'utilisateur.
Pour les scénarios où les invites UAC ne sont pas souhaitables, l'intégration d'un manifeste d'application est recommandée. Demander le niveau d'exécution «haut-plus-acquaillable» dans le manifeste incitera la CUD lors du lancement de l'application, accordant des privilèges élevés à tous les processus enfants ultérieurs sans autres interruptions. Cela offre une expérience utilisateur plus transparente.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!