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 :

Passage de parametres à un service windows


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut Passage de parametres à un service windows
    Bonjour,

    J'ai créé un programme en CPP (exe) qui prend une série d'options au lancement du genre

    MonProg.exe -a "user" -p "pass"

    On me demande maintenant de transformer mon programme pour qu'il devienne un service windows.

    J'ai vu le post de Vincenzo (http://www.developpez.net/forums/sho...d.php?t=408239)

    Mais je ne vois pas trop comment m'y prendre... Puis-je passer des parametres à MyServiceMain() ?

    Merci

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Salut,

    Si tes paramètres sont fixes, il te suffit de les spécifier dans la ligne de commande qui identifie le service quand tu crées le service.

    S'il sont variables ou qu'ils peuvent varier régulièrement, tu as deux solutions :

    * les placer dans un fichier texte qui sera lu par le service lors de son démarrage
    * les placer dans le registre : ce qui est souvent fait, c'est de les placer dans une clé 'Parameters' dans le clé de du service...

    Cela me fait penser qu'il serait bon que j'ajoute des fonctions du type ServiceGetOption(), ServiceSetOption(), .... Je m'y collerai peut être ce soir...

    PS : c'est vicenzo , pas vincenzo ....
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta réponse et désolé d'avoir écorché ton pseudo !

    Si j'en crois le tutoriel, pour créer mon service, je peux faire ce genre de chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void WINAPI MyServiceMain()
    {
        while (!ServiceIsTerminated())
        {
            if (ServiceGetCurrentStatus() == SERVICE_RUNNING)
            {
                leMainAncienDeMonProgramme(int argc, char* argv[]) ;
            }
            ServiceSleep(1000);            
        }
    }
    Mais le nouveau main a cette tete là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main(int argc, char** argv)
    {
        return ServiceRun("MyServiceName", MyServiceMain, 1000, SERVICE_ACCEPT_STOP);
    }
    Ou se fait le passage des parametres jusqu'à leMainAncienDeMonProgramme(int argc, char* argv[]) ?

    Sinon, je vais suivre tes conseils pour stocker les valeurs des options (base de registre ou fichier).

    C'est la premiere fois que je suis amené à toucher à ce genre de choses alors je cafouille !

  4. #4
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Bon je vois ce que tu voulais dire...

    Ce que tu peux faire c'est récupérer dans ta fonction leMainAncienDeMonProgramme() les arguments avec __argc et __argv

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void WINAPI MyServiceMain()
    {
        int arc;
        char **argv;
    
        argc    = __argc;
        argv    = __argv;
    
        /* .. */
    
    }
    Par contre ta fonction MyServiceMain() ne doit pas être bloquante...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Okay, merci de ton aide, je réfléchis à tout ça, j'essaye de le mettre en place et je reviens demain avec des retours et de nouvelles questions

  6. #6
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Salut,


    Je me suis replongé sur la lib...
    C'est un vieux source que j'ai mis en opensource en septembre.
    J'avais un peu de temps hier, donc :
    • j'ai revisité totalement le header,
    • ajouté la documentation Html,
    • revu un peu de code,
    • ajouté les fonctions pour les options.
    • ajouté la transmission du argc et argv
    Bref, J'ai fait un sérieux toilettage de printemps...

    Bon je fini ca ce soir, et je mettrait sourceforge et dvp à jour.
    Et pourquoi pas un petit tuto dans foulée..
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Je m'en occupe seulement aujourd'hui, c'est génial que tu ai travaillé là dessus, cela va me rendre un joli service. Les modifications que tu as apporté sont déjà consultables ?

  8. #8
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    salut,

    Desole pour la reponse tardive, je suis en angleterre pour quelques jours...

    J'uploaderai une version 1.7.0 d`ici ce week end....
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Hello, je n'ai pas retouché à mon code, j'attend de tes news =D

    Bon courage et merci de ton aide !


  10. #10
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Salut,


    Enfin revenu d'Angleterre...

    Je mettrai à jour la librairie sur sourceforge d'ici demain.

    Je te préviens dès que c'est fait...

    a+
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    Salut,

    As-tu fais la mise à jour ? Il est temps pour moi de me replonger dans ce projet pour le terminer cette semaine.


  12. #12
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Oui c'est fait...

    Je t'envoies l'archive par MP ce soir car j'ai pas encore mis sourceforge à jour.

    Ça te va ?
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 13
    Points
    13
    Par défaut
    C'est vraiment trés sympas, merci beaucoup de ton aide !

  14. #14
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    bon, je t'ai envoyé le MP...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

Discussions similaires

  1. Donner des parametre a un service windows
    Par charouel dans le forum Débuter
    Réponses: 6
    Dernier message: 22/12/2009, 16h21
  2. Réponses: 0
    Dernier message: 29/11/2007, 10h25
  3. Réponses: 2
    Dernier message: 23/11/2007, 09h27
  4. Passage de parametre calculé
    Par soazig dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 06/06/2003, 16h25
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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