Bonsoir à tous,
Je souhaite lancer un programme à partir d'une application : ce programme n'a pas été écrit par moi, et peut être lancé en ligne de commande.
Pourtant, ce programme utilise un fichier qui est caché à l'utilisateur de mon application en utilisant un compte administrateur.
Le programme lancé affiche le chemin en clair du fichier utilisé, et je ne veux pas que l'utilisateur ne puisse lire facilement l'endroit où il est stocké : je souhaite donc rediriger la sortie standard de ce soft pour que le lien vers le fichier n'apparraisse pas.
J'ai donc essayé de marier à la fois la redirection et un username.
Voici le code que je tente vainement de faire tourner :
J'ai le droit à une exception de type Win32Exception qui me dit "Descripteur non valide".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 char[] car = { 'p','a','s','s'}; System.Windows.Forms.Application.DoEvents(); System.Diagnostics.Process flashProcess = new System.Diagnostics.Process(); flashProcess.StartInfo.FileName = "Program.exe"; flashProcess.StartInfo.Arguments = "Test"; flashProcess.StartInfo.CreateNoWindow = false; flashProcess.StartInfo.UseShellExecute = false; flashProcess.StartInfo.RedirectStandardOutput = true; flashProcess.StartInfo.RedirectStandardInput = false; flashProcess.StartInfo.StandardOutputEncoding = System.Text.UTF8Encoding.UTF8; flashProcess.StartInfo.UserName = "utilisateur"; System.Security.SecureString pass = new System.Security.SecureString(); foreach (char c in car) { pass.AppendChar(c); } flashProcess.StartInfo.Password = pass; flashProcess.Start(); String output = flashProcess.StandardOutput.ReadToEnd(); flashProcess.WaitForExit(); flashProcess.Close();
Si je ne redirige pas la sortie mais un autre username, cela marche.
Si je redirige la sortie et n'utilise pas un autre username, cela marche.
J'ai essayé de lancer "cmd.exe", puis, en redirigeant l'entrée standard, de lancer mon code en ligne de commande : cela marche, mais pas en changeant le username.
Je n'ai vu nulle part une quelconque incompatibilité entre redirection et changement d'utilisateur
Avez-vous une idée, ou une piste de réflexion ?
Merci pour votre aide
Partager