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

VBScript Discussion :

La méthode Popup ne marche pas dans un HTA ?


Sujet :

VBScript

  1. #1
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut La méthode Popup ne marche pas dans un HTA ?

    comme il est indiqué dans le titre : La méthode Popup ne marche pas dans un HTA ? pourquoi aucune idée
    par contre dans un Vbscript marche !
    voila les deux exemples : VBS et HTA

    en VBS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Popup()
    Dim WshShell, BtnCode
    Set WshShell = WScript.CreateObject("WScript.Shell")
     
    BtnCode = WshShell.Popup("Comment allez-vous ?", 7, "Répondez à cette Question:", 4 + 32)
     
    Select Case BtnCode
       case 6      WScript.Echo "Je suis ravie d'apprendre que vous allez bien."
       case 7      WScript.Echo "J'espère que vous irez mieux."
       case -1     WScript.Echo "Y-a-t-il quelqu'un ?"
    End Select
    End Sub
    Call Popup
    en HTA :
    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
    24
    25
    26
    27
    28
    <html>
    <head>
    <title>Question</title>
    <HTA:APPLICATION 
    APPLICATIONNAME="Question"
    SCROLL="yes"
    SINGLEINSTANCE="yes"
    WINDOWSTATE="normal"
    >
    <script language="VBScript">
    Sub Popup()
    Dim WshShell, BtnCode
    Set WshShell = CreateObject("WScript.Shell")
     
    BtnCode = WshShell.Popup("Comment allez-vous ?", 7, "Répondez à cette Question:", 4 + 32)
     
    Select Case BtnCode
       case 6      WScript.Echo "Je suis ravie d'apprendre que vous allez bien."
       case 7      WScript.Echo "J'espère que vous irez mieux."
       case -1     WScript.Echo "Y-a-t-il quelqu'un ?"
    End Select
    End Sub
    </script>
    </head>
    <body>
    <input type="button" value="Question" name="run_button"  onClick="Popup"><p> 
    </body>
    </html>

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Salut

    Après un enregistrement en .hta, pour moi pas de problèmes, mis à part que j'ai modifié les WScript.Echo par des MsgBox.

  3. #3
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut
    Après un enregistrement en .hta, pour moi pas de problèmes, mis à part que j'ai modifié les WScript.Echo par des MsgBox.

    Vous voulez dire que le popup se ferme tout seul après 7 secondes écoulés sans votre intervention ?
    car mon but c'est la fermeture du popup tout seul après 7 secondes sans l'intervention du utilisateur or dans mon HTA le popup s'affiche bien mais il ne se ferme pas tout seul sauf que je clique sur OK

  4. #4
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Vous voulez dire que le popup se ferme tout seul après 7 secondes écoulés sans votre intervention ?
    Oui, pas dans l’éditeur (VBS Factory) qui lui aussi ne ferme pas le Popup au bout de 7 secondes, mais sur double-click sur le fichier .hta;
    De plus, WScript.Echo dans un HTA me semble curieux, n'est il pas plutôt réserve dans une fenêtre de CMD ?

  5. #5
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut

    Je pense que le problème vient que les objets WScript ne sont pas supportées dans une HTA.
    Donc, pour contourner cette limitation, j'ai utilisé cette astuce: générer un fichier temporaire vbscript et l'exécuter comme ceci:
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <html>
    <head>
    <title>Question</title>
    <HTA:APPLICATION 
    APPLICATIONNAME="Question"
    SCROLL="yes"
    SINGLEINSTANCE="yes"
    WINDOWSTATE="normal"
    >
    <script language="VBScript">
    Sub Popup(Msg,Wait,Title)
     Set fso = CreateObject("Scripting.FileSystemObject")
     Set ws  = CreateObject("WScript.Shell")
     Dim tempFolder : Set tempFolder = fso.GetSpecialFolder(2)
     Dim tempName : tempName = "Popup.vbs"
      Set objOutputFile = fso.CreateTextFile(tempFolder&"\"&tempName, True)
      objOutputFile.Writeline "Set WshShell = CreateObject(""WScript.Shell"")"
      objOutputFile.WriteLine "BtnCode = WshShell.Popup("&qq(Msg)&","&qq(wait)&","&qq(Title)&", 4 + 32)"
      objOutputFile.WriteLine "Select Case BtnCode"
      objOutputFile.WriteLine "case 6      MsgBox ""Je suis ravie d'apprendre que vous allez bien !"" ,64,""Je suis ravie d'apprendre que vous allez bien !"""
      objOutputFile.WriteLine "case 7      MsgBox ""J'espère que vous irez mieux !"",64,""J'espère que vous irez mieux !"" "
      objOutputFile.WriteLine "case -1     MsgBox ""Y-a-t-il quelqu'un ?"",vbQuestion,""Y-a-t-il quelqu'un ?"" "
      objOutputFile.WriteLine "End Select"
      objOutputFile.Close
      ws.Run tempFolder&"\"&tempName
    End Sub
     
    Function qq(strIn) 
        qq = Chr(34) & strIn & Chr(34)
    End Function
    </script>
    </head>
    <body>
    <input type="button" value="Question" name="run_button"  onClick="Popup 'Comment allez-vous ?','5','Répondez à cette Question'"><p> 
    </body>
    </html>
    Donc le Problème est

  6. #6
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    En plus des remarques de ProgElecT, si tu déplaces la souris en dehors de la fenêtre principale, tu arriveras au résultat souhaité sans passer par un autre fichier(avec lequel la boite MsgBox reste en arrière-plan).

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

Discussions similaires

  1. [JDOM] Une méthode qui ne marche pas
    Par kaninama dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 24/05/2006, 16h10
  2. Outlook ne marche pas dans mon réseau sous linux
    Par Germain123 dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 25/03/2006, 22h15
  3. Balise <PRE> marche pas dans un form
    Par chateau64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 14/11/2005, 09h20
  4. aperçu d image avec input type file marche pas dans ffx
    Par siddh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/11/2005, 09h11
  5. [GifDecoder] marche pas dans applet avec IE
    Par formentor dans le forum Applets
    Réponses: 2
    Dernier message: 06/05/2003, 10h43

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