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 :

process fonctionne avec Vista pas avec XP


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 10
    Points
    10
    Par défaut process fonctionne avec Vista pas avec XP
    Bonjour,

    Avec process je peux utiliser un programme externe comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void processStart(string programme , string fichier)
            {
                Process proc = new Process();
                fichier = fichier.Replace(@"\" , @"\\");
                programme = programme.Replace(@"\", @"\\");
                proc.StartInfo.UseShellExecute = false;                     // rediriger la sortie
                proc.StartInfo.RedirectStandardOutput = true;               // récupérer le message de sortie
                proc.StartInfo.FileName = programme;
                proc.StartInfo.Arguments = fichier;
                proc.Start();
                proc.Close();
            }
    J'ai un bouton et quand je clique dessus je lance Paint avec le lien et le nom de mon image jpg déjà sélectionnée dans une ligne de mon DataGridView1 qui comporte le chemin et le nom de mon image en Cells[17].

    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
    24
    25
    private void Bpaint_Click(object sender, EventArgs e)
            {
                int l;
                 string chjpg;
                 if (DataGridView1.Rows.Count > 0)
                {
                    l = DataGridView1.CurrentCell.RowIndex;
                    // test si sélection
                    chjpg = (string)DataGridView1.Rows[l].Cells[17].Value;
     
                    if (chjpg != null)
                    {
     
                        if (!System.IO.File.Exists(chjpg))
                        {
                                 MessageBox.Show("Image jpg introuvable.", "Erreur de fichier");
                                return;
                            }
                            else
                            {
                                   processStart("mspaint.exe", chjpg);
                                }
                            }
                        }
                }
    Cela fonctionne très bien avec Vista, mais pas avec XP. Le chemin de l'image n'est pas reconnu.
    Pouvez-vous m'aider ?

    Jean

  2. #2
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Question idiote (ou pas) : les frameworks .Net installés sont les mêmes ?
    Processeur 32 bits ?
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Oui le framework est le 3.5 SP1 et tous les deux des windows 32 bits. Si j'utilise VLC les messages d'erreur sont les suivants

    *******************************
    La lecture du fichier a échoué :
    VLC n'a pas pu ouvrir le fichier « C:\Documents ».
    Votre média d'entrée ne peut être ouvert:
    VLC ne peut pas ouvrir « file:///C:/Documents ». Vérifiez les messages pour plus de détails.
    La lecture du fichier a échoué :
    VLC n'a pas pu ouvrir le fichier « C:\Documents and Settings\Administrateur\and ».
    Votre média d'entrée ne peut être ouvert:
    VLC ne peut pas ouvrir « file:///C:/Documents and Settings/Administrateur/and ». Vérifiez les messages pour plus de détails.
    La lecture du fichier a échoué :
    VLC n'a pas pu ouvrir le fichier « C:\Documents and Settings\Administrateur\Settings\Administrateur\Bureau\UfoCapture ».
    Votre média d'entrée ne peut être ouvert:
    VLC ne peut pas ouvrir « file:///C:/Documents and Settings/Administrateur/Settings/Administrateur/Bureau/UfoCapture ». Vérifiez les messages pour plus de détails.
    La lecture du fichier a échoué :
    VLC n'a pas pu ouvrir le fichier « C:\Documents and Settings\Administrateur\Capture\2011\201106\20110617\M20110617_044539_Chaligny_01.avi ».
    Votre média d'entrée ne peut être ouvert:
    VLC ne peut pas ouvrir « file:///C:/Documents and Settings/Administrateur/Capture/2011/201106/20110617/M20110617_044539_Chaligny_01.avi
    **************************************


    Et pour ACDSee j'ai
    ACDSee n'a pas pu trouver le fichier C:\Documents.bmp"
    Alors que c'est le même chemin qu'au dessus sauf que c'est une image.

    Un problème de caractère espace ?

    Jean

    Jean

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    si tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chjpg = @(string)DataGridView1.Rows[l].Cells[17].Value;
    et tu enlève tes replace ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Non même problème.
    Au niveau du path de XP il n'y a rien à activer ?

    Je vais me faire une petite appli avec deux champs texte en faire plein d'essais pour essayer d'y voir clair.

    Jean

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    si tu utilises l'openfiledialog pour récupérer le chemin de ton fichier ça plante?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Oui pour le fichier j'utilise l'openfiledialog, je récupère le chemin et le nom de mon image ou de ma vidéo et je le mets dans mon DataGridView1.
    Pour le nom du programme cela dépend, soit c'est dans le programme, soit l'utilisateur le choisi avec l'openfiledialog.

    Jean

  8. #8
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    C'est bizarre, on dirait que l'arborescence est "défectueuse".
    Serait-ce lié à une mauvaise installation de Vista ?

    Tu es sur une VM ou machine physique ?
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    tu as essayé de lancer ton process directement après l'openfiledialog sans passé par le datagrid?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Je précise que j'utilisais visual C#.net 2008 framework 3.5 sous Vista pour compiler mon appli. Je suis passé à visual C#.net 2010 toujours sous Vista mais j'ai exactement le même problème, ce qui ne m'étonne pas car ce n'est qu'une interface de développement. Et je suis sur une machine physique.
    Normalement l'appli s'adapte au framework, ce ne devrait donc pas être un problème sauf si les classes utilisées ne sont pas dans le framework.
    Je ne pense pas me tromper.

    D'après vos conseils (et je vous en remercie) je vais développer un petit programme et tester tout cela.

    Jean

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    J'ai créé une petite appli avec des champs textes pour insérer mes chemins et noms de programme et de fichier.
    Même problème donc cela ne vient pas de DataGridView1.

    Le problème est le même chez d'autres personnes a qui j'ai envoyé mon programme.

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    proc.StartInfo.FileName = @programme;
     proc.StartInfo.Arguments = @fichier;
    même soucis.
    Je vous joins mon petit programme test fait avec visual C# .net 2010 à compiler pour framework 3.5 et à tester sous xp.
    Moi je compile sous Vista et je teste sous xp ce qui n'est pas pratique alors si l'un d'entre vous compile sous xp cela serait sympa de faire des tests.

    d'avance merci,

    Jean
    Fichiers attachés Fichiers attachés

  12. #12
    Membre régulier

    Profil pro
    Inscrit en
    Août 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 19
    Points : 115
    Points
    115
    Par défaut
    Lorsque tu lances ton appli, il faut mettre le chemin entre guillemet.

    par exemple:
    mspaint.exe "c:\Document And settings\....\image.jpg"

    Je pense que ça vient de là

  13. #13
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 10
    Points
    10
    Par défaut
    Mais oui c'est bien sûr ! Le problème de guillemets je l'avais déjà rencontré et cela m'avait échappé ici.

    Merci DDNetweaver, et pour conclure je redonne ma fonction corrigée, et qui fonctionne je l'ai testé.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void processStart(string programme , string fichier)
            {
               string sep = ((char)34).ToString();
               Process proc = new Process();
                 proc.StartInfo.UseShellExecute = false;                     // rediriger la sortie
                proc.StartInfo.RedirectStandardOutput = true;               // récupérer le message de sortie
                proc.StartInfo.FileName = sep + programme + sep;
                proc.StartInfo.Arguments = sep + fichier + sep;
                proc.Start();
                proc.Close();
            }
    Merci à tous, en voyant VLC tout tronçonner j'aurai du y penser.

    Jean

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/01/2015, 23h47
  2. Réponses: 8
    Dernier message: 22/11/2012, 18h10
  3. accesskey ne fonctionne pas avec un tabpanel avec ajax
    Par prady92 dans le forum ASP.NET Ajax
    Réponses: 0
    Dernier message: 27/04/2012, 18h28
  4. Formulaire PHP fonctionne avec FF pas avec IE
    Par djchoubi dans le forum Langage
    Réponses: 1
    Dernier message: 09/06/2011, 19h17
  5. Programme ne fonctionne pas avec 3 caméras (avec 1 et 2 c'est OK)
    Par beegees dans le forum Général Python
    Réponses: 0
    Dernier message: 26/10/2010, 14h20

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