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 :

Illegal characters in path dans la path d'un process


Sujet :

C#

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 254
    Par défaut Illegal characters in path dans la path d'un process
    Bonjour,

    J'ai un programme qui liste les Process en mémoire dans une ListBox. Rien de compliqué à faire. Il suffit d'utiliser la méthode suivante pour récupérer la liste.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    Process[] processlist = Process.GetProcesses();

    Ensuite, pour chacune des lignes, donc pour chaque Process le bloc de code suivant est exécuté quand je double clique sur une ligne.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            private void processListBox_MouseDoubleClick(object sender, EventArgs e)
            {
                Process p = (Process)processListBox.SelectedItem;
                string path = Path.GetDirectoryName(p.MainModule.FileName);
                FileInfo fi = new FileInfo(path + "\\Autostart.inf");
                MessageBox.Show(p.MainModule.FileName + 
                    "\n" + path +
                    "\n" + fi.Exists.ToString());
            }

    Le but de ce code est de récupérer l'exécutable d'un Process en mémoire. Tout fonctionne très bien pour la plupart de mes Process. Ainsi double cliquer sur le Process "devenv" m'affiche uneMessageBox contenant le message suivant :

    C:\\Program Files\\Microsoft Visual Studio 8\\Common7
    \\IDE\\devenv.exeC:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE
    False
    J'ai néamoins quelques réaction bizares

    1. La première, je m'y attendais, quand je double clique sur le Process "Idle" ou "System". Celui-ci n'étant lié à aucun fichier mon programme crash. Le message d'erreur est "Unable to enumerate the process modules."
    2. Le seconde, et c'est ici que je trouve ca bizare, se passe quand je double clique sur certain Process tel que "csrss" ou "winlogon". Le message d'erreur est "Illegal characters in path.". En effet en utilisant le debuger on peut remarque que le path est
      \\??\\C:\\WINDOWS\\system32\\csrss.exe
      Ma question (enfin) : d'où vien ce \\??

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 190
    Par défaut
    Je ne sais pas si ça peut résoudre ton pb, mais déjà ne concatène pas des chaînes lorsqu'il s'agit de chemin de fichiers !

    Fait plutôt comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Path.Combine(path, "Autostart.inf");

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 254
    Par défaut
    Merci pour l'astuce. C'est effectivement mieux.

    Non ca ne règle pas mon problème... qui n'en est pas vraiment un en fait. Il s'agit plus d'une interrogation de voir des path illégaux commençant pas "\\??" pour certains Process.

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par DranDane Voir le message
    Non ca ne règle pas mon problème... qui n'en est pas vraiment un en fait. Il s'agit plus d'une interrogation de voir des path illégaux commençant pas "\\??" pour certains Process.
    Peut-être que ta question aura plus de chance de trouver une réponse dans la partie Windows

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 254
    Par défaut
    Peut-être oui.

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Tous les process n'ont pas forcément un MainModule.FileName qui pointe véritablement vers un fichier valide. Tu devrais plutôt essayer d'afficher le path de l'exe sélectionné pour voir s'il représente vraiment quelque chose, et voir à quoi ressemblait le path lors du crash (avec le debug ou via une MessageBox).

Discussions similaires

  1. Parser Error Message: Illegal characters in path.
    Par maeva87 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/03/2015, 14h55
  2. URISyntaxException: Illegal character in path
    Par daydream123 dans le forum Général Java
    Réponses: 4
    Dernier message: 04/02/2015, 13h42
  3. Réponses: 11
    Dernier message: 05/10/2010, 09h37
  4. Illegal character in path at index 'x'
    Par HozakaN dans le forum JPA
    Réponses: 4
    Dernier message: 06/07/2009, 09h18
  5. Ajout de paramètres dans le path du forward
    Par sylvain_neus dans le forum Struts 1
    Réponses: 6
    Dernier message: 14/11/2007, 17h31

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