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

 Delphi Discussion :

exe vers service


Sujet :

Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut exe vers service
    Salut,
    J'ai développé une appli pour laquelle j'ai utilisé quelques composants visuels pour le déboguage.
    Maintenant j'ai supprimé tout ces composants et la form est complètement vide.
    Est-il possible de démarrer cette application en temps que service sans limitations? La form doit-elle être supprimée? Faut-il repartir à l'étape de création d'un service et y importer mon code?
    Détail, je suis en Delphi XE2.
    Merci pour vos conseils!!!
    PhilLu

    Question annexe:
    quand je lance l'exe, il réalise certaines tâches puis ne fais plus rien quand elles sont achevées (normal)
    Dans le cas du service, comment le redémarrer pour répéter les tâches à effectuer?
    (Dans l'exe, j'avais un bouton start ;-)

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    ça ne serait pas plutôt une tâche planifiée ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    De fait, j'utilise plusieurs applications l'une à la suite de l'autre.
    Dès que la première a terminé, elle devrait lancer la suivante et ainsi de suite pour les suivantes. (Et elle même se mettre en pause si service et si nécessaire?)
    La dernière application fait une pause de (par exemple) 5 minutes puis relance la première et ainsi de suite...
    Merci pour tes idées!!!
    PhilLu

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 699
    Points : 15 042
    Points
    15 042
    Par défaut
    Yep !
    Citation Envoyé par PhilLU Voir le message
    De fait, j'utilise plusieurs applications l'une à la suite de l'autre.
    Dès que la première a terminé, elle devrait lancer la suivante et ainsi de suite pour les suivantes. (Et elle même se mettre en pause si service et si nécessaire?)
    La dernière application fait une pause de (par exemple) 5 minutes puis relance la première et ainsi de suite...
    Merci pour tes idées!!!
    PhilLu
    j'utilise plusieurs applications l'une à la suite de l'autre.

    Et ça ne serait pas plus simple de faire une application principale style scheduler (ordonnanceur, en bon français) qui se chargerait de lancer les applis l'une à la suite de l'autre, qui pourrait insérer des délais, les relancer si nécessaire, etc. ?

    Perso c'est comme ça que je ferais dans un tel cas.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Oui, peut-être. Comme chaque tâche dure un temps imprévisible, il faut détecter la fin de la,tâche pour démarrer la suivante...
    ...donc dialoguer entre exe!

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Pas utile de dialoguer entre les exe.
    Tu utilises un CreateProcess et tu as la possibilité d'attendre que l'application s'arrete et tu passes à la suivante (Voir dans la pour le createprocess)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Ben oui, via un shellexecute, mais comment savoir quand l'exe a fini?
    Il faut faire un application.terminate dans l'application même puis quoi dans le scheduller?

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Je n'ai pas parlé de ShellExecute mais de CreateProcess

    en cherchant dans la

    http://delphi.developpez.com/faq/?pa...oleapplication
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 671
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 671
    Points : 13 065
    Points
    13 065
    Par défaut
    C'est possible aussi avec ShellExecuteEx en spécifiant le masque SEE_MASK_NOCLOSEPROCESS

  10. #10
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Bon, de retour de vacances, je m'y suis mis!
    Bien sûr pas ok dès le premier essai!
    J'ai été obligé (pour Delphi XE2) de changer CreateProcess en CreateProcessA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    StartInfo   : TStartupInfoa; // et plus TStartupInfo
    If CreateProcessa(Nil, processus, Nil, Nil, False,0, Nil, Nil, StartInfo,ProcessInfo) Then ...
    Puis pour ne pas afficher la fenêtre noire durant le processus, j'avais essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    try
      ShowWindow(GetConsoleWindow, SW_MINIMIZE);{ou HIDE}
    mais un flash disgracieux apparaissant malgré tout , j'ai supprimé la ligne:
    Là, ça marche!!!

    Maintenant, j'ai des applications qui doivent encore être transformées en application console. Elles contiennent une form mais aucun composant visuels.
    Toutefois sont déposé sur la form TSQLQuery et TSQLConnection.
    Comment supprimer la form et garder les composants???
    Merci pour vos conseils!!!
    Et très bon week-end !!!!!!!

  11. #11
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 671
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 671
    Points : 13 065
    Points
    13 065
    Par défaut
    Et quel rapport entre un service et une application console

  12. #12
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Ben, comme l'a suggéré Jipété:
    Et ça ne serait pas plus simple de faire une application principale style scheduler (ordonnanceur, en bon français) qui se chargerait de lancer les applis l'une à la suite de l'autre, qui pourrait insérer des délais, les relancer si nécessaire, etc. ?
    J'ai donc abandonné l'idée de transformer mes codes en services mais plutôt en apps console(pas d'interfaces graphiques; les seules ont servi au déboggage, maintenant virées) J'ai aussi viré le pour éviter l'ouverture de la fenêtre noire...
    L'ordonnanceur fonctionne parfaitement avec plusieurs apps mais:
    Maintenant, j'ai des applications qui doivent encore être transformées en application console. Elles contiennent une form mais aucun composant visuels.
    Toutefois sont déposé sur la form TSQLQuery et TSQLConnection.
    Comment supprimer la form et garder les composants???
    J'espère que c'est plus clair!?!
    Merci pour vos réponses!!!

  13. #13
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 699
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 699
    Points : 15 042
    Points
    15 042
    Par défaut
    Citation Envoyé par PhilLU Voir le message
    (...) Toutefois sont déposé sur la form TSQLQuery et TSQLConnection.
    Comment supprimer la form et garder les composants???
    Ben, en créant dynamiquement au lancement de l'appli les composants qui t'intéressent. Doit y avoir des milliers (millions ?) de tutos pour ça.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  14. #14
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    ok, merci Jipété!
    Est-il possible de récupérer le code des propriétés d'un objet créé via interface graphique? (pour l'utiliser dans mon code de création dynamique)

    Bon dimanche!!!

  15. #15
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 671
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 671
    Points : 13 065
    Points
    13 065
    Par défaut
    Tu cherches beaucoup trop loin
    Garde simplement ton application originale (GUI) et ajoute dans la source du projet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ShowMainForm := FALSE;

  16. #16
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Merci 1000x Andnotor!!!!!!!
    Comme quoi ma question n'état pas trop stupide!
    Pourquoi faire compliqué quand on peut faire simple!
    Avec celle là, tu bats les records

    (Donc au lieu de faire des apps console qui m'affiche un écran noir (ou quand j'ajoute un 'Hide', un flash) c'est aussi la voie royale pour éviter ça!)
    Je ne comprend pas d'ailleurs pourquoi le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Application.ShowMainForm := FALSE;
    ne me renvoie pas un flash à l'écran comme le flash observé avec une apps console!?!
    Développer avec options visuelles de debuggage est très confortable, puis quand ok, désactiver ShowMainForm prend 1 seconde max.
    Et si ensuite il faut apporter des modif au code, il suffit de la réactiver!!!





    Très bonne fin de week-end!!!

  17. #17
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 671
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 671
    Points : 13 065
    Points
    13 065
    Par défaut
    Citation Envoyé par PhilLU Voir le message
    Je ne comprend pas d'ailleurs pourquoi le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Application.ShowMainForm := FALSE;
    ne me renvoie pas un flash à l'écran comme le flash observé avec une apps console!?!
    Parce que la propriété Visible d'une fiche est FALSE par défaut. C'est dans Application.Run que la fiche principale est éventuellement affichée.
    ps: j'aurais plutôt mis ShowMainForm dans la source du projet puisqu'il doit obligatoirement être fixé avant Run (Regrouper l'initialisation de TApplication).

    Citation Envoyé par PhilLU Voir le message
    Développer avec options visuelles de debuggage est très confortable, puis quand ok, désactiver ShowMainForm prend 1 seconde max.
    Et si ensuite il faut apporter des modif au code, il suffit de la réactiver!!!
    Ajoute la gestion d'un paramètre pour conditionner l'affichage : MonApp.exe /Show
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ShowMainForm := FindCmdLineSwitch('Show');
    Tu peux ainsi toujours avoir le visuel en debug sous Delphi en l'ajoutant dans les paramètres d'exécution (Menu Exécuter/Paramètres...) et créer des liens sur le bureau avec ou sans affichage.

  18. #18
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Merci pour ces détails riches en enseignements!!!
    C'est plus clair pour moi maintenant!
    L'idée du paramètre d'exécution est géniale

    Merci encore Andnotor

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

Discussions similaires

  1. exe vers cab ou jar
    Par djerbi sidali dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 25/06/2009, 10h54
  2. Convertion du fichier .exe vers .cpp
    Par p_programmeur dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 11/04/2009, 19h24
  3. Réponses: 9
    Dernier message: 16/10/2008, 16h27
  4. WSDL vers service web
    Par dwinkel dans le forum Delphi
    Réponses: 1
    Dernier message: 15/05/2007, 12h18
  5. Exporter un .exe vers un autre ordinateur
    Par ben_ghost dans le forum Visual C++
    Réponses: 16
    Dernier message: 12/07/2006, 16h39

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