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 :

VBS : lancement d'un programme après avoir appuyé sur Entrée


Sujet :

VBScript

  1. #1
    Gunner4902
    Invité(e)
    Par défaut VBS : lancement d'un programme après avoir appuyé sur Entrée
    Bonjour,

    Est-il possible, au lieu de préciser le temps (ici 6 secondes) de dire : éxécution de la suite après avoir appuyé sur la touche entrée ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut inputBox
    Salut ,

    Pourquoi ne pas mettre une boite de dialogue en pop up à la place (une inputBox) ? Ca bloquerait l'exécution tant qu'on a pas cliqué sur OK il me semble...

    Bon courage

    -M@rc0-

  3. #3
    Gunner4902
    Invité(e)
    Par défaut
    Et tu fais celà comment ? ta solution pourrait effectivement m'intéresser

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut comme ça :D
    Je manque un peu d'infos sur ton programme pour te dire exactement où mettre le MsgBox/InputBox mais je peux te renseigner sur la syntaxe :
    (NB : si tu ne souhaites pas récupérer la réponse utilisateur, utilise MsgBox)

    look ici :
    http://www.w3schools.com/VBScript/func_inputbox.asp

    et là :
    http://www.w3schools.com/VBScript/func_msgbox.asp

    Enfin voilà, en gros, je pense qu'il faut le placer au même endroit que ton Sleep et que, tant que l'utilisateur n'aura pas cliqué sur OK, le prog sera en stand-by ... Sinon, tu peux surement insérer ton InputBox dans une boucle vérifiant la valeur saisie et validant/invalidant le fait de continuer le programme.

    Je viens de coder un exemple idiot mais qui fonctionne et te donnera une idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim rep
    rep = InputBox("Ca va ?")
     
    while rep <> "oui"
    	rep = InputBox("Ca va ?")
    wend
     
    MsgBox ("ouf..on est sorti")
    Essai et tu comprendras peut être mieux.

    Bon courage et fais signe en cas de besoin

    -M@rc0-

  5. #5
    Gunner4902
    Invité(e)
    Par défaut
    J'ai copié ton bout de code et l'exemple correspondt assez à ce que je voudrai faire.

    Voici mon code, et ce qu'il gère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set wshell=CreateObject("WScript.Shell")
    wshell.Run"C:\Progra~1\Rohos\agent.exe J:\rdisk.rdi"
    WScript.Sleep(4000)
    wshell.Run"K:\Mov'AMP\movamp.exe"
    WScript.Sleep(1000)
    wshell.Run"C:\Progra~1\Opera\opera.exe http://localhost/"
    rdisk.rdi est une partition verrouillée, je l'appelle via le logiciel Rohos pour ouvrir l'interface avec le code.
    Là je voudrais que le programme attende que j'ai appuyé sur le Ok de la boite de dialogue de Rohos.
    Ensuite, est lancé le serveur apache via movamp (version mobile de easyphp)
    puis après un délai d'attente de 1 seconde localhost est lancé via le navigateur opera.

    J'ai essayé en ramplaçant
    par
    mais celà ne semble pas être adapté, car il faut que je clique une fois sur Ok dans Rohos, puis une fois sur la box, sans compter qu'il me propose une ligne de texte vide.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut
    euh... pour ce qui est de la ligne de texte vide, remplace InputBox par MsgBox
    Pour l'instant je ne suis pas en mesure de te dire comment te passer de ce deuxième OK. Cela me semblait une bonne "solution de secours". En fait ce qu'il faudrait (à mon avis) c'est être à l'écoute des signaux de sorti du Rohos (à la manière des signaux sur les processus en langage C).
    Je vais essayer de faire des recherches de mon côté et si je trouve je te préviens.

    Courage

    -M@rc0-

  7. #7
    Gunner4902
    Invité(e)
    Par défaut
    Ok merci Marco

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Si tu veux te passer de MsgBox, il faudrait savoir ce que fait Rohos. Du genre, est ce qu'il crée un fichier juste avant de te demander de cliquer sur ok ? il positionne une variable d'environnement ? ....
    Bref un truc visible que pourrait surveiller ton script, et là il te suffirait de faire une boucle (tant que le truc n'est pas fait) et dans la boucle mettre un sleep de 500 MilliSeconde ou d'une seconde (histoire de ne pas bouffer toutes les ressources du PC chose que le script ferais sans le sleep dans la boucle).

  9. #9
    Gunner4902
    Invité(e)
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Si tu veux te passer de MsgBox, il faudrait savoir ce que fait Rohos. Du genre, est ce qu'il crée un fichier juste avant de te demander de cliquer sur ok ? il positionne une variable d'environnement ?
    Euh… je peux savoir celà comment ?
    En fait ce que j'ai compris du logiciel est qu'il "décompresse" le fichier rdi et que celui-ci devient un lecteur virtuel puisque j'ai une partition supplémentaire après avoir entré le mot de passe. Je ne sais pas si ça aide beaucoup ma description ! rire

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut mais si........
    Si si, ca aide ! Enfin je pense. Là, il faut t'en remettre à ced600 à mon avis (et evidemment aux recherches dans les FAQ, forums, net... avant toute chose )
    Il faut savoir comment détecter la présence d'un lecteur virtuel et je pense que ton problème sera réglé.
    Je vais regarder aussi, ca pourra pas me faire de mal

    ++

    -M@rc0-

    Edit :
    ici peut -etre
    http://www.developpez.net/forums/sho...light=lecteurs

  11. #11
    Gunner4902
    Invité(e)
    Par défaut
    J'ai donc regardé au lien que tu m'as donné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set FSO = CreateObject("Scripting.FileSystemObject")
     
    For Each Drv In FSO.Drives
        If Drv.IsReady Then
            MsgBox "le support " & Drv.DriveLetter & " --> " & _
            Drv.drivetype & " --> " & Drv.FreeSpace & " octets"
        End If
    Next
    Celà affiche une msgbox pour chaque partition.
    Si je fais ce script avant de lancer Rohos j'ai mes 5 partitions "physiques" ; si je fais ce script après avoir lancé Rohos, j'ai en plus 2 partitions virtuelles intitulées toutes deux Rohos (K et W, pour les lettres)

  12. #12
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Dans ce cas là utilise ce bout de code.
    Une première fois avant de lancer rohos et note le nombre de lecteur que tu as dans une variable A.
    Lance ton soft, puis fait une boucle dont la condition d'arrêt est par exmple que tu es 2 lecteur en plus (B = A + 2).
    Dans la boucle tu fais un sleep d'une seconde, et ensuite tu utilises le code précédent pour détecter le nombre de lecteur, et comme pour le début tu stock le nombre, mais cette fois ci dans B.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut
    Salut,

    Bon...je pense que tu es sauvé, non ? Tu n'as plus qu'à effectuer un test sur les noms des lecteurs. J'ai pas les syntaxes en tête mais ca devrait donner un truc dans le genre :
    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
    Dim trouve
    trouve = false
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    While not trouve
    
     For Each Drv In FSO.Drives
         If Drv.VolumeName = "Rohos" Then
             trouve = true
         End If
     Next
    
    Wend
    
    Si tu sors du while c'est que trouve est à true et donc que ta condition pour continuer le script est bien remplie (si on considère, ce que j'ai compris, que la condition est la création/montage du volume rohos).

    Enfin voilà, encore une fois, bon courage.

    ++

    -M@rc0-

    Edit : il est fort ce ced600, j'avais pas fini d'écrire mon post qu'il avait déjà posté . C'est pas grave, les infos sont complémentaires. Tcho

  14. #14
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut


    Si le nom du volume a toujours le nom Rohos, alors la proposition de marco_fot_hxc est meilleur que la mienne. En effet dans la mienne, la création des volumes pouvaient être fait par n'importe qui donc une possibilité d'erreur.

    Tu peux toujours essayer de faire un mixe des deux (on ne s'est jamais, qu'un petit malin crée un volume rohos pendant l'exécution du soft )

  15. #15
    Gunner4902
    Invité(e)
    Par défaut
    Ok, merci à vous pour vos réponses. Problème résolu

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/12/2013, 12h53
  2. VBS + lancement d'un programme sauf sur certain poste
    Par genius2139 dans le forum VBScript
    Réponses: 15
    Dernier message: 03/05/2012, 09h42
  3. afficher une liste box apres avoir appuyé sur un bouton
    Par maissaab dans le forum wxPython
    Réponses: 1
    Dernier message: 16/03/2011, 10h40
  4. Réponses: 1
    Dernier message: 22/08/2006, 12h07
  5. Saisir le choix sans avoir à appuyer sur Enter
    Par b_steph_2 dans le forum C++
    Réponses: 7
    Dernier message: 12/07/2005, 11h27

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