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

Windows Discussion :

Problème d'utilisation de CreateProcess


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Problème d'utilisation de CreateProcess
    Bonjour tout le monde,
    Alors voilà je suis en deuxième année de BTS IRIS et je tente de réaliser un projet censé gérer l'équipement d'une salle de spectacle.
    J'ai un module qui doit commandé des prises à distances mais je ne parvient pas a faire fonctionner le create process
    Voici la méthode qui appelle la fonction CreateProcess:
    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
    // Active ou désactive les prises
    void IpPower::maj_prise(unsigned char num_prise, unsigned char valeur)
    {
            prise[num_prise-1] = valeur;
            //char * chemin="C:\\\"Program Files\"\\GnuWin32\\bin\\wget";
            char commande[128];
            sprintf(commande,"C:\\\"Program Files\"\\GnuWin32\\bin\\wget http://admin:12345678@%s/SetPower.cmd?p6%d=%d", adresse,num_prise-1,valeur);// adresse est un attribut de la classe
            //Variables pour le CreateProcess
            bool herit=TRUE;
            STARTUPINFO toto;
            ZeroMemory(&toto, sizeof(toto));
            toto.cb = sizeof(toto);
            PROCESS_INFORMATION proc;
            if(CreateProcess(NULL, commande, NULL, NULL, herit, CREATE_NEW_CONSOLE|HIGH_PRIORITY_CLASS,NULL, NULL ,&toto,& proc))
            {
                    printf("coucou\n");
            }
            else
            {
                    printf("error\n");
            }
    }
    Pour lancer un programme C avec des paramètres ça marche mais la la console m'affiche error... et je ne comprends pas pourquoi cela ne marche pas...
    Merci d'avance de votre aide.
    Cordialement,
    Simon

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Je ne sais pas si CreateProcess() apprécie les guillemets dans le second paramètre.
    Pour référencer wget dans Program Files, utilise plutôt le premier paramètre...

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci de votre aide!
    j'avais déjà essayé cette solution mais cela ne marche pas non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    char * chemin="C:\\\"Program Files\"\\GnuWin32\\bin\\wget";
    sprintf(commande,"http://admin:12345678@%s/SetPower.cmd?p6%d=%d",adresse,num_prise-1,valeur);
    if(CreateProcess(chemin, commande, NULL, NULL, herit, CREATE_NO_WINDOW, NULL, NULL ,&toto,&proc))
    {
       printf("coucou\n");
    }
    else
    {
       printf("error\n");
    }
    Je viens de retenter comme ceci mais j'ai toujours une erreur...
    Je n'ai pas compris pour les guillemets du deuxième paramètre, en logique après l'exécution du sprintf il n'y a pas de guillemets dans la chaine commande?
    Merci,
    Simon

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Et un truc de ce genre?
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    char const *nomApplication = "C:\\Program Files\\GnuWin32\\bin\\wget"; /*pas de guillemets*/
    char bufLigneCommande[TAILLE_SUFFISANTE];
     
    sprintf(bufLigneCommande, "wget http://admin:12345678@%s/SetPower.cmd?p6%d=%d",adresse,num_prise-1,valeur); /*wget rajouté*/
     
    if(CreateProcess(nomApplication, bufLigneCommande, NULL, NULL, herit, CREATE_NO_WINDOW, NULL, NULL ,&toto,&proc))
    {
       printf("coucou\n");
    }
    else
    {
       printf("error\n");
    }

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci!!!!!!!
    bon alors les modifications sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char * chemin="C:\\\"Program Files\"\\GnuWin32\\bin\\wget.exe"; /* J'avais oublié le .exe.... */
    sprintf(commande,"http://admin:12345678@%s/SetPower.cmd?p6%d=%d",adresse,num_prise-1,valeur);
    /* Rajout du wget comme vous me l'aviez indiqué */
    Et ça marche!!!!!!! Merci beaucoup de votre rapidité et de votre efficacité!!!!
    Cordialement et joyeusement
    Simon

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

Discussions similaires

  1. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  2. [cvs] problèmes d'utilisation
    Par gromite dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/06/2004, 17h41
  3. Problème: Requête utilisant NOT IN
    Par fages dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/05/2004, 10h18
  4. Réponses: 2
    Dernier message: 05/04/2004, 23h06
  5. problème d'utilisation avec turbo pascal 7.0
    Par le 27 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 03/12/2003, 10h44

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