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

Lazarus Pascal Discussion :

[Lazarus] Piloter Apache, MySQL, ... et plus généralement des services depuis Lazarus


Sujet :

Lazarus Pascal

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut [Lazarus] Piloter Apache, MySQL, ... et plus généralement des services depuis Lazarus
    J'ai développé un petit outil pour faire des développements "WAMP" sur clé USB à l'aide de Delphi et de la libriaire JCL (voir ici). Je souhaiterais le passer sous Lazarus mais je n'arrive pas à piloter les services : start et stop pas de problème, par contre détecter si un service est installé ou non ??
    Dans un premier temps, cet outil fonctionnerait sous Windows mais avec l'objectif qu'il soit "multiplateforme".

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bonjour,

    La notion de service est une notion Windows. Il semble peu réaliste de le passer en multiplateforme directement. Il faudra faire des modifications importantes.

    L'appel aux services se fait via l'unité WinSvc. Si l'appel à OpenService échoue, c'est que le service n'est pas disponible. Il doit également exister des API pour lister les services présents sur la machine.

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par Hdd34
    La notion de service est une notion Windows. Il semble peu réaliste de le passer en multiplateforme directement. Il faudra faire des modifications importantes.
    Vous me dites si je me trompe, les daemons sous *nix ne sont pas "l'équivalent" des services Windows ?

    Mon objectif est d'avoir un seul code source pour mon projet appelant les "morceaux" de codes spécifiques en fonction du système. Est-ce bien réalisable ?

    Citation Envoyé par Hdd34
    L'appel aux services se fait via l'unité WinSvc. Si l'appel à OpenService échoue, c'est que le service n'est pas disponible. Il doit également exister des API pour lister les services présents sur la machine.
    Je ne maîtrise pas du tout cette unité. J'ai recherché en vain des exemples, "bouts de code" l'utilisant. Quelqu'un aurait-il un exemple d'utilisation ?

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bonjour,

    Citation Envoyé par franck.thibault
    Vous me dites si je me trompe, les daemons sous *nix ne sont pas "l'équivalent" des services Windows ?
    Equivalents, non. C'est ce qui s'en rapproche le plus. A partir du moment où on attaque la programmation système, il devient difficile de créer du code interchangeable entre les systèmes. Le mode de communication avec les services n'est pas le même qu'avec les daemons, et il n'existe pas de "standard" permettant de piloter l'un ou l'autre avec le même code.

    Citation Envoyé par franck.thibault
    Je ne maîtrise pas du tout cette unité. J'ai recherché en vain des exemples, "bouts de code" l'utilisant. Quelqu'un aurait-il un exemple d'utilisation ?
    Pour le code, on peut commencer avec la FAQ Delphi : http://www.developpez.com/delphi/faq/?page=services-nt.
    D'autres exemples ici : http://www.chami.com/tips/delphi/031498D.html

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par Hdd34
    ...Pour le code, on peut commencer avec la FAQ Delphi : http://www.developpez.com/delphi/faq/?page=services-nt.
    D'autres exemples ici : http://www.chami.com/tips/delphi/031498D.html

    @++
    Merci pour les infos, j'ai commencé à regarder tout ça de plus près et j'utilise plutôt le second lien comme référence (et ça marche bien). En effet, le premier lien utilise la JCL et je n'ai pas réussi à la faire fonctionner sous Lazarus.
    Lorsque j'aurai terminé, peux-tu me dire où poster mes sources si ça intéresse ?

    @+

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut
    Pour piloter Apache, voici le code que j'utilise :
    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
     
    uses
      Process, uservices
    ...
    procedure LancerApache;
    var
      AProcess: TProcess;
    begin
       // Installation du service
       AProcess := TProcess.Create(nil);
       AProcess.CommandLine := 'D:\server\apache\bin\apache.exe -k install -n fvpatApache';
        AProcess.Options := AProcess.Options + [poWaitOnExit];
        AProcess.ShowWindow := swoHIDE;
        AProcess.Execute;
        AProcess.Free;
        // Démarrage du service
        AProcess := TProcess.Create(nil);
        AProcess.CommandLine := 'D:\server\apache\bin\apache.exe -k start -n fvpatApache';
        AProcess.Options := AProcess.Options + [poWaitOnExit];
        AProcess.ShowWindow := swoHIDE;
        AProcess.Execute;
        AProcess.Free;
    end;
    L'unité uservices.pas est en pièce jointe à ce message
    Si vous avez des remarques, n'hésitez pas
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Windows Vista : plus de connexion Apache -> MySQL
    Par patrickthierry dans le forum Apache
    Réponses: 1
    Dernier message: 02/12/2010, 00h41
  2. Solution la plus adéquate pour une informatisation totale des services ?
    Par kodo dans le forum Débats sur le développement - Le Best Of
    Réponses: 11
    Dernier message: 28/12/2006, 14h45
  3. Travailler avec PHP / Apache / MySQL
    Par R3iTt0R dans le forum Linux
    Réponses: 22
    Dernier message: 24/06/2004, 11h03
  4. [Kylix] Module DSO apache + Mysql avec Kylix3
    Par Little_Psylo dans le forum EDI
    Réponses: 1
    Dernier message: 11/02/2004, 21h00

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