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

Vos Contributions VBScript Discussion :

[Outil] Vbs eXtended InputBox pour VbScript


Sujet :

Vos Contributions VBScript

  1. #1
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut [Outil] Vbs eXtended InputBox pour VbScript
    bonjour,

    plus de 12 ans après mes premières propositions pour améliorer la fonction InputBox
    j'ai finalement écrit une version définitive compatible avec toutes les versions de XP SP3 et supérieures.
    en quelques lignes, InputBox peut ressembler à ça :

    Nom : InputBoxEx.jpg
Affichages : 182486
Taille : 48,3 Ko

    au lieu de :

    Nom : InputBox.jpg
Affichages : 2575
Taille : 8,8 Ko

    note : les utilisateurs d'Avast avec la protection "heuristique" activée devront autoriser spécifiquement le lancement de vbsx.exe
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    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 077
    Points : 17 188
    Points
    17 188
    Par défaut
    Salut omen999

    Dans la page article, en fin d'article, le lien qui je pense devrait aboutir dans cette discussion n'est pas bon (Page not found):
    Vous pouvez également poser vos questions et laisser vos commentaires et suggestions sur le forum ici : forum Developpez.
    je pense qu'il devrait être https://www.developpez.net/forums/d1...tbox-vbscript/
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    salut ProgElecT,

    réparé
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  4. #4
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut Installation Vbsx
    Bonjour,
    Merci pour cette nouvelle fonctionnalité fort séduisante.
    Cependant, si je créé un script en dehors du dossier d'installation, il ne reconnait plus l'InputBox amélioré mais seulement vbs. J'ai loupé quelque chose ?

    D'avance merci pour les réponses

    Michel
    (et je n'ai pas trouvé où créer un nouveau fil...)

  5. #5
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    (et je n'ai pas trouvé où créer un nouveau fil...)
    et c'est très bien ainsi car ton message est au bon endroit

    j'ai horreur des programmes d'installation qui écrivent un peu partout
    dans la bdr et pas toujours utilement

    mais j'ai peut-être été un peu restrictif sur ce coup car on peut effectivement
    attendre d'une installation qu'elle mette à jour la variable d'environnement

    j'ai modifié le vbsx_setup.exe en ce sens et il est à télécharger sur le lien de l'article

    note : l'installation peut se faire sans inconvénient sur une config déjà installée
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  6. #6
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par omen999 Voir le message
    et c'est très bien ainsi car ton message est au bon endroit

    j'ai horreur des programmes d'installation qui écrivent un peu partout
    dans la bdr et pas toujours utilement

    mais j'ai peut-être été un peu restrictif sur ce coup car on peut effectivement
    attendre d'une installation qu'elle mette à jour la variable d'environnement

    j'ai modifié le vbsx_setup.exe en ce sens et il est à télécharger sur le lien de l'article

    note : l'installation peut se faire sans inconvénient sur une config déjà installée
    Merci beaucoup pour cette réponse et aussi pour cette mise à jour fantastique.
    Je dois parti en déplacement demain pour 2 jours ; je testerai donc plus tard mais ne manquerai pas de revenir ici pour le retour.

    Michel

    note : peut-être qu'un indication sur le path à modifier pourrait aussi être une option ?

  7. #7
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    note : peut-être qu'un indication sur le path à modifier pourrait aussi être une option ?
    oui ça me parait une bonne idée
    il sera demandé à l'utilisateur s'il souhaite mettre à jour la variable d'environnement Path

    donc mise à jour du vbsx_setup.exe à télécharger dans le lien de l'article
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  8. #8
    Membre du Club Avatar de DMike92
    Homme Profil pro
    Technicien maintenance ( retraité)
    Inscrit en
    Avril 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance ( retraité)
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2014
    Messages : 30
    Points : 67
    Points
    67
    Par défaut Super
    Citation Envoyé par omen999 Voir le message
    oui ça me parait une bonne idée
    il sera demandé à l'utilisateur s'il souhaite mettre à jour la variable d'environnement Path

    donc mise à jour du vbsx_setup.exe à télécharger dans le lien de l'article
    Je crois que j'ai un peu sur-estimé mon temps libre...
    Je ne reviens que maintenant !

    En tous cas c'est super
    Ça fonctionne impeccable (seulement après reboot, bien sûr)
    Et quand je parlais du path à modifier je voulais juste dire qu'une petite explication pour dire quoi ajouter dans le path pourrait suffire. Mais c'est encore mieux comme ça
    (en même temps on peut deviner que l'est le chemin d'installation à ajouter dans la variable Path).

    Merci encore pour cette belle extension, je sens que je vais me remettre à VbScript (je dois avoir 250 à 300 scripts mais tous ne servent plus) !

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 8
    Points
    8
    Par défaut [Outil] Vbs demande d'infos
    Bonjour, déjà merci pour ses VBSCRIPT, je suis nouveau sur ce forum et débutant en VBS , je voudrais savoir comment récupérer les informations de chaque chant séparément pour les mètres dans une variable
    merci

  10. #10
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,

    extrait de la doc :
    Valeur retournée :

    la fonction InputBox renvoie une chaîne qui est composée de la valeur finale des contrôles dans l’ordre d’entrée du paramètre default, séparée par le caractère « | » ou celui redéfini par l’option -sepc. Pour les contrôles {clbox, lbox}, la valeur finale est l’index de l’item sélectionné et pour les contrôles {ckbox, rdbox} leur état final. {dlg, label, frame et group} ne renvoient pas de données et sont ignorés.
    ci-dessous un exemple de boite de dialogue très simple avec seulement deux ctrls label et deux ctrls edit
    seuls les ctrls edit renvoient une valeur et ces valeurs sont séparées par le caractère |
    pour les extraire, la fonction Split() est parfaitement adaptée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option explicit
    Dim title,defaut,rep,data
    title="eXtended InputBox by omen999"
    defaut="dlg~-1~-1~400~300~2|label~10~20~70~19~Libellé n°1 :|edit~86~17~160~21~contenu initial n°1|label~10~46~70~19~Libellé n°2 :|edit~86~43~160~21~contenu initial n°2"
    rep=InputBox("",title,defaut)
    Msgbox rep  ' la valeur brute renvoyée par InputBox
    data = Split(rep,"|")
    If UBound(data) > 0 then Msgbox data(0) & vbCrLf & data(1) ' les valeurs séparées de chaque ctrl edit
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 8
    Points
    8
    Par défaut Outil] Vbs demande d'infos
    Merci, pour l’explication, j'ai projet d'un script qui utiliserait cette fonction pour l'installation d'une imprimante réseaux je m'explique, je voudrais avoir une fenêtre avec un logo et 4 champs qui demanderaient à l'utilisateur d’entrée l'adresse IP ? une autre le NOM DE L'IMPRIMANTE, la 3e le type de pilote, le 4e la config, récupérer les entrées de ces 4 champs pour les renvoyer dans un script batch . merci pour votre aide si vous avais une piste ou un exemple , je suis preneur en vous remerciant.

  12. #12
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    en gros, tu voudrais bien un exemple tout fait...

    le script test.vbsx :
    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
    Option explicit
    Dim title,res(9),rep,params
     
    title="eXtended InputBox by omen999"
    res(0) = "dlg~-1~-1~650~290~3"
    res(1) = "img~10~15~220~220~omen220.ico"
    res(2) = "label~260~15~60~19~Adresse IP :"
    res(3) = "ipctrl~366~10~120~19~0.0.0.0"
    res(4) = "label~260~40~102~19~Nom de l'imprimante :"
    res(5) = "edit~366~36~160~19"
    res(6) = "label~260~66~80~19~Type de pilote :"
    res(7) = "clbox~366~60~110~40~bourré#incontinent#caractériel#dépressif#12345678"
    res(8) = "label~260~92~74~19~Configuration :"
    res(9) = "clbox~366~86~110~40~configuration n°1#configuration n°2#configuration n°3" 
     
    rep=InputBox("",title,Join(res,"|"))
    msgbox rep
    params = Split(rep,"|")
    ' un espace dans un paramètre sera interprété comme un séparateur  
    If UBound(params) > -1 Then CreateObject("WScript.Shell").Run "test.bat " & params(0) & " " & params(1) & " " & params(2) & " " & params(3)
    le fichier batch (tant qu'à faire) test.bat :
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for %%a in (%1 %2 %3 %4) do echo %%a
    pause

    le logo : omen220.zip

    et le résultat (tu peux garder le logo...) :

    Nom : testbox.jpg
Affichages : 1273
Taille : 53,9 Ko
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Bonjour merci pour la réponse et désoler si vous avez pensé que je veux un script tout fait ce n'était pas ça, mais juste pour exposer mon projet, je débute en vbscript, et j'ai réalisé ceci à ma façon qui n'est pas la meilleure mais j'essaie de comprendre .

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Option explicit
    Dim title,defaut,rep,data,var1,var2,var3,var4,pass,pass2,pass4,pass3,com,Result,WshShell,f,fso,chemin,oShell,strHomeFolder,objShell
     
    title="Installation MULTIFONCTION"
     
    defaut="dlg~-1~-1~600~400|frame~10~10~132~132|img~12~12~128~128~atom128.ico|frame~146~23~70~2|label~216~14~210~19~ Installation MFP |frame~414~23~70~2|group~150~38~300~98~ &Script d'installation |label~184~70~240~29~ PROGRAME D'INSTALLATION POUR MULTIFONCTION CREE PAR MOI |group~10~148~150~98~&TYPE DE PILOTE|rdbox~14~172~82~19~Type PCL|rdbox~14~210~82~19~Type PS|label~10~250~200~19~&Configuration de L'imprimante :|cbox~10~272~444~100~Recto-N/B#Recto-Couleur#Recto-Verso-N/B#Recto-Verso-Couleur|label~168~148~184~19~&Informations d'installation |frame~350~158~126~2|label~168~172~166~19~Nom de L'imprimante :|edit~300~170~170~21~|label~168~199~190~19~Adresse IP de L'imprimante :|ipctrl~335~198~148~21~127.0.0.1|label~168~230~40~19~&Date :|datepick~212~228~100~21~" & Date & "|label~10~305~450~38~Notice : test"
     
    rep=InputBox("",title,defaut)
     
    data = Split(rep,"|")
     
     
    If UBound(data) > 0 then var1="drivers=" & data(2) & vbCrLf ' les valeurs séparées de chaque ctrl edit
    If UBound(data) > 0 then var2="config:" & data(4) & vbCrLf 
    If UBound(data) > 0 then var3="Nom," & data(5)& vbCrLf
    If UBound(data) > 0 then var4="IP;" & data(6) & vbCrLf
     
    'Preparation de l'environnement
     
    Set oShell = CreateObject("WScript.Shell")
    strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%\downloads\fichier.txt")
     
    Set fso=CreateObject("Scripting.FileSystemObject")
    chemin="fichier.txt"
    '"8" = ecriture en fin de fichier, "1" = Lecture seul , "2" = Ecriture seul
    '"true" crée le fichier si non existant, "false" ne crée pas le fichier
    'Ouverture du fichier et ecriture en fin (ligne par ligne)
    set f=fso.OpenTextFile(chemin,8,True)
    pass=var1
    pass2=var2
    Pass3=var3
    pass4=var4
    'Ecrire dans le fichier
    f.WriteLine(pass)
    f.WriteLine(pass2)
    f.WriteLine(pass3)
    f.WriteLine(pass4)
    f.close
    set f=nothing
    set fso=nothing
     
    Set WshShell = CreateObject("WScript.Shell")
    Set objShell = (CreateObject("Wscript.shell"))
    com="cmd /c start.bat" 
    Result=WshShell.Run(com,1,True)'Option 1 Console Visible.Option 0 Console Invisible
    Call objShell.Run("PowerShell -NoProfile -ExecutionPolicy Bypass -Command nbrecto.ps1", 1, True)
    Nom : Capture.JPG
Affichages : 925
Taille : 45,9 Ko

    fichier BAT

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    start.bat
     
    FOR /F "tokens=2  delims=," %%i in ('type fichier.txt^|findstr /r "," ') do set NOM=%%i
    FOR /F "tokens=2 delims==" %%i in ('type fichier.txt^|findstr /r "=" ') do set drivers=%%i
    FOR /F "tokens=2 delims=:" %%i in ('type fichier.txt^|findstr /r ":" ') do set config=%%i
    FOR /F "tokens=2  delims=;" %%i in ('type fichier.txt^|findstr /r ";" ') do set IP=%%i

  14. #14
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    et désoler si vous avez pensé que je veux un script tout fait ce n'était pas ça,
    pas de souci les exemples sont toujours bon à prendre

    d'ailleurs tu ferais mieux d'essayer de personnaliser mon dernier exemple plutôt que celui de l'article

    de plus, tu t'embarques dans des trucs bien compliqués pour simplement transmettre 4 paramètres
    à ton script powershell

    les variables d'environnement peuvent être directement définis dans le VBS sans passer par un batch
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Option explicit
    Dim title,res(9),rep,params,shl,cvol
     
    title="eXtended InputBox by omen999"
    res(0) = "dlg~-1~-1~650~290~3"
    res(1) = "img~10~15~220~220~omen220.ico"
    res(2) = "label~260~15~60~19~Adresse IP :"
    res(3) = "ipctrl~366~10~120~19~0.0.0.0"
    res(4) = "label~260~40~102~19~Nom de l'imprimante :"
    res(5) = "edit~366~36~160~19"
    res(6) = "label~260~66~80~19~Type de pilote :"
    res(7) = "clbox~366~60~110~40~bourré#incontinent#caractériel#dépressif#12345678"
    res(8) = "label~260~92~74~19~Configuration :"
    res(9) = "clbox~366~86~110~40~configuration n°1#configuration n°2#configuration n°3" 
     
    rep=InputBox("",title,Join(res,"|"))
    msgbox rep
    params = Split(rep,"|")
    If UBound(params) > -1 Then
      Set shl = CreateObject("WScript.Shell")
      Set cvol = shl.Environment("VOLATILE")
      cvol("IP") = params(0)
      cvol("NOM") = params(1)
      cvol("drivers") = params(2)
      cvol("config") = params(3)
      shl.Run "PowerShell -NoProfile -ExecutionPolicy Bypass -Command nbrecto.ps1", 1, True
    End If
    le plus élégant serait évidemment que ton powershell accepte directement les paramètres en ligne de commande
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 8
    Points
    8
    Par défaut [Outil] Vbs eXtended InputBox pour VbScript
    Merci, je vais utiliser ton script
    c'est vrai que j'ai fait compliqué je débute et ce n'est pas évident, je vais revoir tout ça

    mais je n'ai pas compris quand tu dis que

    le plus élégant serait évidemment que ton powershell accepte directement les paramètres en ligne de commande.

    Merci

  16. #16
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    mais je n'ai pas compris quand tu dis que

    le plus élégant serait évidemment que ton powershell accepte directement les paramètres en ligne de commande.
    les scripts powershell acceptent les arguments en ligne de commande et même les arguments nommés
    de mémoire quelque chose comme ça (à faire vérifier par un connaisseur du pws) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shl.Run "PowerShell -NoProfile -ExecutionPolicy Bypass -Command nbrecto.ps1 " & "-IP " & params(0), 1, True
    le code du script pws devra évidemment être remanié pour que les paramètres soient lus à partir des arguments nommés et non à partir de l'environnment
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2014
    Messages : 5
    Points : 8
    Points
    8
    Par défaut Vbs eXtended InputBox pour VbScript
    Bonjour j'ai avancé sur mon projet mais j'ai 2 petits soucis que je n'arrive pas à résoudre

    - le premier est quand je mais sur le tableau a l'emplacement du NOM exemple I200-CPT ( impriment 200 comptas) et que je valide la fenêtre se ferme sans continuer. le script

    - le 2éme dans mon script BATCH je crée un fichier powershelle (nbrecto.ps1) pour configurer mon imprimante mais à la fin du script j'obtiens des erreurs powershell

    aurais tu une idée Merci

    Nom : XVBX1.JPG
Affichages : 842
Taille : 25,8 Ko

    fichier test.bat
    Code BAT : 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    @ECHO OFF
     
     
    for %%a in (%1) do SET IP=%%a
    for %%b in (%2) do SET NOM=%%b
    for %%d in (%3) do SET drivers=%%d
    for %%c in (%4) do SET config=%%c
     
     
    ::Je récupere le nom de l'ordinateur
    FOR /f "tokens=2 delims==" %%f IN ('wmic os get CSName /value ^| find "="') DO SET "nompc=%%f"
     
     
    if %%c == 3 goto Action_3
    if %%c == 2 goto Action_4
    if %%c == 1 goto Action_5
    if %%c == 0 goto Action_6
     
     
     
    :Action_3
    set color=1
    set rv=1
    goto configure
     
    :Action_4
    set color=1
    set rv=0
    goto configure
     
    :Action_5
    set color=0
    set rv=1
    goto configure
     
    :Action_6
    set color=0
    set rv=0
    goto configure
     
     
     
    :configure
    > %USERPROFILE%\Downloads\nbrecto.ps1 echo $PrintConfiguration = Get-PrintConfiguration -computernam %nompc% -PrinterName "%NOM%"
    >> %USERPROFILE%\Downloads\nbrecto.ps1 echo $PrintConfiguration.color=%color%
    >> %USERPROFILE%\Downloads\nbrecto.ps1 echo $PrintConfiguration.DuplexingMode=%rv%
    >> %USERPROFILE%\Downloads\nbrecto.ps1 echo set-PrintConfiguration -InputObject $PrintConfiguration
    >> %USERPROFILE%\Downloads\nbrecto.ps1 echo Get-PrintConfiguration -computernam %nompc% -PrinterName "%NOM%"
     
     
    powershell -Command "& {$PrintConfiguration = Get-PrintConfiguration -computernam %nompc% -PrinterName "%NOM%" ; $PrintConfiguration.color=%color% ; $PrintConfiguration.DuplexingMode=%rv% ; set-PrintConfiguration -InputObject $PrintConfiguration ; Get-PrintConfiguration -computernam %nompc% -PrinterName "%NOM%"}"
    fichier installe.vbsx
    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
    Option explicit
    Dim title,res(9),rep,params
     
    title="Installation MULTIFONCTION "
    res(0) = "dlg~-1~-1~650~290~3"
    res(1) = "img~10~15~220~220~kmicone.ico"
    res(2) = "label~260~15~60~19~Adresse IP :"
    res(3) = "ipctrl~366~10~130~21~0.0.0.0"
    res(4) = "label~260~40~102~19~Nom de l'imprimante :"
    res(5) = "edit~366~36~160~20"
    res(6) = "label~260~66~105~19~Type de pilote :"
    res(7) = "clbox~366~60~90~40~PCL6#PS"
    res(8) = "label~260~95~100~19~Configuration  :"
    res(9) = "clbox~366~90~130~19~Recto-N/B#Recto-Couleur#Recto-Verso-N/B#Recto-Verso-Couleur" 
     
    rep=InputBox("",title,Join(res,"|"))
    msgbox rep
    params = Split(rep,"|")
    ' un espace dans un paramètre sera interprété comme un séparateur  
    If UBound(params) > -1 Then CreateObject("WScript.Shell").Run "test.bat " & params(0) & " " & params(1) & " " & params(2) & " " & params(3)

  18. #18
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    et que je valide la fenêtre se ferme sans continuer. le script
    si tu valides le champ texte avec la touche <Enter> c'est le comportement normal d'une dialogbox car le bouton <OK> est le bouton par défaut (liseré bleu)
    pour circuler entre les différents champs, il faut utiliser la touche tabulation
    comme c'est le comportement standard, je ne le modifierai pas (peut-être une option dans une version future)

    mais à la fin du script j'obtiens des erreurs powershell
    pour les erreurs powershell, adresse-toi au sous-forum qui concerne ce langage
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 19
    Points : 33
    Points
    33
    Par défaut Remerciements
    En recherche du solution "définitive" pour une boîte de sélection de fichier, je suis passé par là et n'ai qu'un mot à dire : Bravo.

    Ah si ! un autre mot aussi : Merci

    Allez, j'y retourne...
    Bonne continuation.

  20. #20
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    En recherche du solution "définitive" pour une boîte de sélection de fichier, je suis passé par là et n'ai qu'un mot à dire : Bravo.
    tu as bien fait de passer car ça m'a rappelé qu'il existait dans les tuyaux de la rédaction
    (ils sont très longs et obscurs )
    une version v1.2.0 qui ajoutait entre autres choses un contrôle bwfile pour appeler la boite sélection de fichier

    un extrait de l'article :

    1.2.0 :
    1. Ajout du contrôle bwfile : il est désormais possible d'ouvrir la boîte de sélection d'un fichier et de mettre à jour un contrôle edit avec le résultat ;
    2. Ajout du contrôle mlbox : il s'agit d'une listbox qui autorise les sélections multiples. En option, celles-ci peuvent être ordonnées ;
    3. Amélioration du contrôle edit : le contrôle peut désormais être multilignes sans limitation de taille. En mode ligne unique, une taille limite peut être fixée.

    (v1.2.0) : le contrôle edit accepte en option des paramètres secondaires. Sous sa forme la plus simple, il s'agira d'une chaine de caractères représentant sa valeur initiale. S'il existe un séparateur de paramètre secondaire, le premier signalera
    soit qu'il s'agit d'un contrôle multilignes (tag « %% »), soit une taille limite acceptée par le contrôle et définie par un nombre. Le nombre zéro indique une absence de limite pratique ;
    (v1.2.0) : le contrôle mlbox qui autorise les sélections multiples, est alimenté de la même façon que le contrôle lbox. Le premier item peut toutefois être remplacé par le tag « %% » qui signale que les sélections seront ordonnées à partir de
    l'indice zéro. Pour tenir compte de ces caractéristiques, la valeur renvoyée sera plus complète (voir infra) ;
    (v1.2.0) : le contrôle bwfile se présente sous la forme d'un bouton éventuellement légendé. L'action de l'utilisateur sur ce bouton ouvrira une boîte de sélection de fichier standard. La valeur renvoyée sera placée dans un contrôle edit qui aura
    été obligatoirement défini dans init comme premier paramètre (voir contrôle dlg ci-dessous). La légende du bouton peut être définie comme deuxième paramètre secondaire ;
    ci-joint le lien vers l'archive qui contient la librairie v1.2.0 qui écrasera la v1.1 et un script vbsx exemple

    sinon s'il s'agit "simplement" de permettre à l'utilisateur du script de sélectionner un fichier il y a cette solution



    ps :
    Ah si ! un autre mot aussi : Merci
    très aimable à toi
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. Les outils que vous utilisez pour programmer en assembleur
    Par Smortex dans le forum x86 32-bits / 64-bits
    Réponses: 36
    Dernier message: 15/08/2022, 11h28
  2. Réponses: 1
    Dernier message: 09/03/2005, 00h42

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