IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Redirection et modification utilisateur


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut Redirection et modification utilisateur
    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 :
    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();
    J'ai le droit à une exception de type Win32Exception qui me dit "Descripteur non valide".

    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

  2. #2
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut Petite précision
    L'utilisateur choisi pour lancer l'action existe, et est valide.
    L'erreur ne vient pas de là : j'ai vraiment l'impression qu'on ne peut pas lancer un programme et récupérer la sortie lorsque l'utilisateur choisi n'est pas le même.
    Qu'en pensez-vous ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut
    Bon, j'ai trouvé....
    En fait, il faut tout rediriger.
    C'est à dire qu'il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    flashProcess.StartInfo.RedirectStandardOutput = true;
    flashProcess.StartInfo.RedirectStandardInput = true;
    flashProcess.StartInfo.RedirectStandardError = true;
    Même s'ils ne sont pas récupérés.

    Ceci est en fait expliqué ici :
    http://connect.microsoft.com/VisualS...xception-in-vs
    Puis choisir pour voir la solution le "Moyen de coutournement".

    Si cela peut aider quelqu'un.

    À plus tard

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/06/2011, 19h30
  2. [Joomla!] redirection après modification d'un article
    Par janclod dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 16/02/2009, 15h12
  3. Réponses: 3
    Dernier message: 13/08/2007, 16h47
  4. Réponses: 5
    Dernier message: 27/03/2007, 18h48
  5. Réponses: 1
    Dernier message: 14/12/2006, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo