Je ne crois pas qu'il est possible d'élever les processus en cours d'exécution. Il est intégré dans Windows Vista que des privilèges d'administrateur sont donnés à un processus au démarrage, ce que je comprends. Si vous regardez les différents programmes qui utilisent le contrôle de compte d'utilisateur, vous devriez voir qu'en fait, elles lancent un processus distinct à chaque fois une action administrative doit être effectuée (le Gestionnaire des Tâches est un, Paint.NET est une autre, cette dernière étant une .NET application, en fait).
La solution classique à ce problème est de spécifier les arguments de ligne de commande lors du lancement d'un processus élevés (abatishchev la suggestion est une façon de le faire), de sorte que le processus lancés sait que pour afficher une certaine boîte de dialogue, puis quittez après cette action a été réalisée. Ainsi, il devrait être à peine perceptible pour l'utilisateur qu'un nouveau processus a été lancé et puis quitté, et serait plutôt semblent comme si une nouvelle boîte de dialogue au sein de la même application a été ouvert (surtout si vous certains hackery pour rendre la fenêtre principale de l'élévation du processus enfant du parent). Si vous n'avez pas besoin de l'INTERFACE utilisateur pour les élevés de l'accès, de même mieux.
Pour une discussion complète de l'UAC sous Vista, je vous recommande de voir ce très grâce à l'article sur le sujet (des exemples de code en C++, mais je soupçonne que vous aurez besoin d'utiliser la WinAPI et de P/Invoke pour faire la plupart des choses en C# de toute façon). J'espère que vous maintenant de voir au moins la bonne démarche à adopter, bien que la conception d'un compatibles programme est loin d'être négligeable...