Suite à une longue bataille contre l'UAC de Windows 7 & Vista. Je viens vers la communauté pour demander du renfort!
Depuis une application exécutée en mode user, je dois lancer plusieurs applications en mode admin après avoir cliquer sur un bouton.
Cependant, je n'ai pas envie que l'utilisateur clique plusieurs fois sur le "Oui"/"Yes" de l'UAC pour que ces applications soient exécutées. D'autant plus qu'il sait très bien ce qui va se passer et que cela se fait en arrière plan (Installation silencieuse. Hey non, je ne crée pas un trojan ).
J'ai trouvé une astuce:
Lancer depuis mon application user une application en mode admin qui elle même lancera toutes les autres applications. Cependant je n'arrive pas à faire communiquer mon application user avec l'application admin, à part récupérer l'exit code. Je n'arrive pas à rediriger l'Output du programme admin.
Voilà la raison de ma guerre, j'espère que j'ai été assez claire.
Je ne suis pas sur que cela soit possible simplement.
La solution de l'application "launcher" me semble la solution la plus adaptée.
Afin de faire communiquer 2 applications entre elles, tu as plusieurs solutions :
1. par un named pipe : tu peux utiliser WCF et les bindings NamedPipe :)
2. par l'écriture d'un fichier + FileSystemWatcher : l'application "manager" écrit dans un fichier, l'application "launcher" utilise un FileSystemWatcher pour lire les données du "manager"
Bien sur, la solution N°1 est un peu plus complexe à mettre en oeuvre mais beaucoup plus propre.