Maison >développement back-end >C++ >Comment puis-je exécuter par programme des processus avec des privilèges élevés en C #?

Comment puis-je exécuter par programme des processus avec des privilèges élevés en C #?

Barbara Streisand
Barbara Streisandoriginal
2025-01-31 10:11:09346parcourir

How Can I Programmatically Run Processes with Elevated Privileges in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn