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

Visual C++ Discussion :

Exécution de ligne commande marchant sur XP mais ne marche pas sur Windows 7 et 8


Sujet :

Visual C++

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut Exécution de ligne commande marchant sur XP mais ne marche pas sur Windows 7 et 8
    Bonjour,

    J'ai une dilemme, un bug sans message d'erreur nulle part.
    J'utilise en fait cwRsync, une application extérieure que je vais utiliser par ligne de commande (CreateProcess) pour synchroniser deux répertoires de fichiers. Pour info, je développe sous Visual Studio 2008.

    Sous Windows XP, l'application marche bien et ainsi la synchronisation s'effectue.

    Sous Windows de version supérieure je dirais (7 et 8 en tout cas), l'application marche bien, CreateProcess retourne bien OK mais la synchronisation n'a jamais eu lieu, bref c'est comme si la ligne de commande n'a jamais été exécutée.
    Or, je teste la commande en question sur cmd.exe, ça marche, la synchronisation se fait!

    Qu'est-ce qui pourrait bien être l'explication? Problème de droit d'exécution de ligne de commande?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 145
    Points : 12 251
    Points
    12 251
    Par défaut
    Rien dans l'EventViewer ?

  3. #3
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    A priori, c'est un problème droit. Je n'ai pas programmé sous Windows 7 depuis longtemps donc je ne sais pas trop comment résoudre cela.

    Test: j'ai essayé un "mkdir quelquechose" comme ligne de commande à exécuter.
    Et ben ça retourne "Le fichier spécifié est introuvable" comme message de retour d'erreur. Là il y a message d'erreur mais avec la commande "rsync" il n'y en a pas mais c'est pas exécuté tout simplement.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 145
    Points : 12 251
    Points
    12 251
    Par défaut
    Si c'est un problème de droit, l'EventViewer devrait l'indiquer.

  5. #5
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Pour le "mkdir quelquechose" je viens de lire que ça ne marche plus sous Windows 7 et plus car CreateProcess s'attend à de vrais exécutables d'où l'erreur: "Le fichier spécifié est introuvable" car mkdir, rmdir, copy, del ne sont pas des exécutables.

    Donc le problème de droit n'est plus le cas pour mon problème initial. Solution toujours à chercher.

  6. #6
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    J'ai trouvé la cause et la solution. Le problème c'est en fait sur mon utilisation de CreateProcess().
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    BOOL WINAPI CreateProcess(
      _In_opt_     LPCTSTR lpApplicationName,
      _Inout_opt_  LPTSTR lpCommandLine,
      _In_opt_     LPSECURITY_ATTRIBUTES lpProcessAttributes,
      _In_opt_     LPSECURITY_ATTRIBUTES lpThreadAttributes,
      _In_         BOOL bInheritHandles,
      _In_         DWORD dwCreationFlags,
      _In_opt_     LPVOID lpEnvironment,
      _In_opt_     LPCTSTR lpCurrentDirectory,
      _In_         LPSTARTUPINFO lpStartupInfo,
      _Out_        LPPROCESS_INFORMATION lpProcessInformation
    );

    Avant :
    lpApplicationName = NULL
    lpCommandLine = C:\cwRsync\rsync.exe --recursive /cygdrive/d/documents/ /cygdrive/f/documents/

    Ça marche sur Windows XP mais ça ne marche pas sur Windows 7

    Maintenant :
    lpaApplicationName = C:\cwRsync\rsync.exe
    lpCommandLine = --recursive /cygdrive/d/documents/ /cygdrive/f/documents/

    Et ça marche sur Windows XP et Windows 7

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Es-tu sûr que --recursive est bel et bien passé à rsync.exe?

  8. #8
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    bizarrement oui ça marche!

    Tu doutes sur le contenu de mon lpCommandLine ?

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Je doutais, on va dire.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 145
    Points : 12 251
    Points
    12 251
    Par défaut
    Moi, c'est que cela marchait sous WinXP. C'est clairement hors spécification.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/02/2011, 09h39
  2. Réponses: 2
    Dernier message: 22/07/2007, 21h39
  3. Réponses: 25
    Dernier message: 16/02/2007, 15h37
  4. <li> ne s'affiche pas sur IE mais s'affiche sur FF
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/12/2006, 16h06
  5. Commande ftp sur free qui ne marche pas!
    Par Death83 dans le forum Administration
    Réponses: 1
    Dernier message: 07/11/2006, 18h08

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