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

Interfaces Graphiques Perl Discussion :

wperl et messageBox


Sujet :

Interfaces Graphiques Perl

  1. #1
    Membre averti Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Points : 411
    Points
    411
    Par défaut wperl et messageBox
    Bonjour,
    J'utilise ActivePerl 5.8 sur differents Windows (XP et 2000).

    J'ai fait un magnifique petit programme perl qui fait du traitement en background pour de l'administration.

    le probleme vient de cette console, que mes utilisateur ont la facheuse habitude te tuer sans le faire expres, mettant bien entendu en peril les traitements... c'est plutot rageant.

    Bref, qu'a cela ne tienne, je passe par wperl.exe et pof, plus de soucis... enfin presque : l'utilisateur doit etre alerte d'un disfonctionnement quelconque (et il peut y en avoir).... mais sans console, die n'affiche plus rien.

    Comment creer un message d'erreurs Windows (ou tout autre moyen de prevenir l'utilisateur) ?
    • J'ai bien entendu ete voir le module TK, mais il oblige a creer un widget parent et un mainloop, ce qui n'est pas vraiment dans l'optique de mon script.
    • Les modules Wx et GTK ne paraissent pas plus simple
    • Le module Win32 ne m'a rien apporte...


    Une idee?
    The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

    IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par SYL666
    Une idee?
    Oui : le module Win32

    En cherchant sur le net avec les mots magiques "msgbox" et "perl" dans Google, le premier lien m'a apporté la soluce directe à ton problème

    http://www.le-berre.com/perl/perlxtd.htm

    Avec la fonction MsgBox( ), tu pourras avoir des fenêtres qui s'affichent avec tous les boutons que tu veux (boutons fonctionnels, tiens-je à préciser)

    Voili voilou

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    tous les GUI te demanderont de faire un mainloop, mais à la limite tu peux faire ce mainloop à l'interieur de traitement d'erreur. En gros tu reste sur ton fonctionnement sequentiel normal et en cas d'erreur tu charge Tk, tu affiche ta boite, et tu rentre dans le mainloop.
    Tu peux aussi faire un appel system avec start, et lancer un petit batch qui affichera le message avec une pause...
    Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    ha ben si la solution à l'arioch marche c'est encore plus simple
    Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par pospos
    tous les GUI te demanderont de faire un mainloop, mais à la limite tu peux faire ce mainloop à l'interieur de traitement d'erreur. En gros tu reste sur ton fonctionnement sequentiel normal et en cas d'erreur tu charge Tk, tu affiche ta boite, et tu rentre dans le mainloop.
    Tu peux aussi faire un appel system avec start, et lancer un petit batch qui affichera le message avec une pause...
    La fonction MsgBox du module Win32 n'a pas besoin d'exiger de la part du développeur le moindre mainloop. La seule chose cependant, c'est la manière dont doit se comporter le programme après avoir affiché la message box sur l'écran de l'utilisateur.

    Mais c'est possible de fournir une liste d'options à la fonction MsgBox et de gérer le comportement du programme en fonction du bouton cliqué par l'opérateur.

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Petit exemple :

    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
    use strict;
    use Win32;
     
    my $bouton_clic;
     
    # message box avec boutons OK et Quitter + gestion du bouton cliqué
    $bouton_clic = Win32::MsgBox('Bug détecté !!!',1);
     
    if ($bouton_clic == 1)
    {
        # bouton Ok cliqué
    }
    elsif ($bouton_clic == 2)
    {
        # bouton quitter ou annuler cliqué
    }
    etc etc

  7. #7
    Membre averti Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Points : 411
    Points
    411
    Par défaut
    oula... oui,
    Je me suis rendu compte de mon erreur juste apres avoir poste : j'ai regarder tout les objets de win32... mais pas win32 en lui-meme.

    ...

    bref, code corrige, probleme regle... Merci!
    The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

    IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."

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

Discussions similaires

  1. Rediriger cerr<< ver un MessageBox
    Par philippe V dans le forum C++
    Réponses: 3
    Dernier message: 22/12/2004, 16h23
  2. [TP][Turbo Vision] MessageBox
    Par sovo dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 18/08/2004, 20h50
  3. MessageBox always on top
    Par Ingham dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/04/2004, 13h44
  4. [Kylix] MessageBox et autre
    Par glub dans le forum EDI
    Réponses: 4
    Dernier message: 13/02/2004, 02h34
  5. Comment masquer le MessageBox de la barre des tâches ?
    Par Coussati dans le forum Langage
    Réponses: 7
    Dernier message: 25/08/2003, 14h33

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