Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[?] Une belle interface pour le batch?
Auteur Message
Répondre en citant
Message [?] Une belle interface pour le batch? 
Salut,
je me demandais hier si c'était possible de faire un programme AutoIt qui lit chaque ligne de la console (cmd) et qui les affiche (en prenant soin des lignes vides) sur un beau GUI, quand il y a set/p, une petite fenêtre d'input pourrait s'ouvrir, etc...
Cela serait vraiment bien quand on se lasse de la fenêtre toute noire Laughing

Exemple, sachez que je n'ai fait qu'utiliser Koda pour recopier ce que la console a affiché, c'est fixe, c'est juste une illustration Wink
Sauf que j'aimerais que ça se fasse automatiquement dès que ça change


Quand on exécute le texte pour le set/p il faudrait que le carré à droite disparaisse.
Code:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Command Prompt", 661, 306, 244, 121)
$Label1 = GUICtrlCreateLabel("Microsoft Windows [version 6.3.9600]", 8, 0, 182, 17)
$Label2 = GUICtrlCreateLabel("(c) 2013 Microsoft Corporation. Touts droits réservés.", 8, 16, 253, 17)
$Label3 = GUICtrlCreateLabel("C:\Users\Hugo>_", 8, 32, 89, 17)
$Group1 = GUICtrlCreateGroup("Input", 432, 16, 201, 145)
$Label4 = GUICtrlCreateLabel("Entrez un texte pour :", 480, 32, 105, 17)
$Input1 = GUICtrlCreateInput("", 448, 88, 169, 21)
$Button1 = GUICtrlCreateButton("OK", 496, 120, 75, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label5 = GUICtrlCreateLabel("C:\Users\Hugo>", 448, 56, 83, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit

   EndSwitch
WEnd



Okay




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message . 
Salut Smile

Je code pas en autoit mais si tu veux faire des belles interfaces en batch tu peux arriver a de très bon résultats avec Batbox Mr. Green

@+ Okay




______________________________________________________
Site MagicDosYoutubeFacebookVietcong 2 OlympeVietcong 2 Alliance
Visiter le site web du posteur Skype
Répondre en citant
Message [?] Une belle interface pour le batch? 
Le problème de batbox, c'est que ça fait de très gros pixels, alors que je cherche plutôt un truc dans la finesse Sad




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message . 
Ah oui Laughing Renseigne toi sur agraf.exe Okay




______________________________________________________
Site MagicDosYoutubeFacebookVietcong 2 OlympeVietcong 2 Alliance
Visiter le site web du posteur Skype
Répondre en citant
Message [?] Une belle interface pour le batch? 
Ok j'irai relire ce topic Wink

Ce qui serait très bien, c'est que si on fait un script autoit, qu'il se mette au dessus de la console afin de ne pas avoir les 2 en même temps Laughing




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [?] Une belle interface pour le batch? 
#lanouvelleMAJd'affpng ! avec des boutons et des combos !




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [?] Une belle interface pour le batch? 
Bon, bah je sais ce que je vais faire aujourd'hui Wink

EDIT: Genre ça ? Je choisis mon Batch (provisoire, là c'est pour les test), il me lis le code (à gauche) et m'affiche le résultat (à droite), et tout ça automatiquement.






______________________________________________________
Viens découvrir INTERPOL, un nouveau langage interprété !

Yahoo Messenger
Répondre en citant
Message [?] Une belle interface pour le batch? 
Oui en gros c'est ça!
Tu démarre un script batch avec ton logiciel, il te le fait, et il ouvre une popup d'input quand il voit que le batch attend (set/p), et aussi quand le batch attend l'appui simple d'une touche!
En fait tout ce qui est affiché à l'écran de la console batch mais en plus beau, pourquoi pas avec police & couleurs, etc... Mr. Green




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [?] Une belle interface pour le batch? 
Ok, dans ce cas, je suis ton homme Laughing

Non, plus sérieusement:

Gérer les Input en ouvrant une InputBox lors d'un Set /P c'est pas un soucis.

Là où ça devient super compliqué, c'est pour l'affichage "stylisé", car il faut prendre en compte les Goto (tout ce qui est affiché lors d'un passage dans une boucle, détecter le début/fin de celle-ci...), pareil pour les For, et les variables.
Il suffit pas d'afficher ce qui doit être affiché dès qu'on rencontre un Echo, mais d'analyser ligne par ligne, les décomposer afin de respecter la syntaxe du langage... C'est comme créer un langage de programmation interprété, ça revient à la même chose.

Je te cache pas que j'avais un jour voulu faire un langage interprété. J'ai vite renoncé.

Pour l'instant, je peux juste te faire le truc de l'InputBox, après on peut discuter du reste.

Dylan.




______________________________________________________
Viens découvrir INTERPOL, un nouveau langage interprété !

Yahoo Messenger
Répondre en citant
Message [?] Une belle interface pour le batch? 
XtR3m_St4RkY a écrit:
Je te cache pas que j'avais un jour voulu faire un langage interprété. J'ai vite renoncé.

C'est (presque) fait http://batch.xoo.it/p32711.htm Laughing

Je pensais qu'il y avait une fonction genre
Code:

ReadConsoleLine(1)

Où 1 est le numéro de ligne.
Mais j'ai pas trouvé une telle chose... Mr. Green
Avoie ce serait pratique!




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [?] Une belle interface pour le batch? 
Pour revenir à ce que je disais au sujet du fait que cela revenait à créer un langage interprété, voici un exemple:






______________________________________________________
Viens découvrir INTERPOL, un nouveau langage interprété !

Yahoo Messenger
Répondre en citant
Message [?] Une belle interface pour le batch? 
Ah ok merci je comprends mieux.

Hugo7 a écrit:

Je pensais qu'il y avait une fonction genre
Code:

ReadConsoleLine(1)

Où 1 est le numéro de ligne.

C'est impossible? :/




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [?] Une belle interface pour le batch? 
Bonjour,

Un peu dans le même délire (manipulation de la ligne de commande avec autoit), j'avais fait le script ci-dessous pour laddy si sa peut aider.
Code:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <constants.au3>

#Region ### START Koda GUI section ### Form=
   $Form1 = GUICreate("", 530, 647, 192, 124)
   $Button1 = GUICtrlCreateButton("Commande dir", 24, 8, 145, 25)
   $Button2 = GUICtrlCreateButton("Commande ipconfig", 176, 8, 169, 25)
   $Button3 = GUICtrlCreateButton("Commande systeminfo", 352, 8, 169, 25)
   $Edit1 = GUICtrlCreateEdit("", 8, 40, 513, 81)
   $Button4 = GUICtrlCreateButton("Exécuter la commande (F1)", 24, 136, 300, 17)
   $input1 = GUICtrlCreateInput("cmd.exe /C echo.&", 340, 136, 100, 17)
   GUICtrlSetTip(-1,"Début de la commande")
   $Edit2 = GUICtrlCreateEdit("résultat de vos commandes", 8, 160, 513, 481)
   GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

HotKeySet("{F1}","_executer_la_commande")

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      case $Button4
         _executer_la_commande()
      case $Button1
         guictrlsetdata($Edit1,GUICtrlRead($Edit1) & "dir " & @crlf)
      case $Button2
         guictrlsetdata($Edit1,GUICtrlRead($Edit1) & "ipconfig" & @crlf)
      case $Button3
         guictrlsetdata($Edit1,GUICtrlRead($Edit1) & "systeminfo" & @crlf)
   EndSwitch
WEnd

func _executer_la_commande()
   GUICtrlSetData($Edit2,"Exécution de la commande en cours ...")
   $tab = StringSplit(GUICtrlRead($Edit1),@CRLF)
   $txt = ""
   for $i = 1 to $tab[0]
      if $tab[$i] <> "" then
         $var = _cmd($tab[$i])
         if $var = "" then $var = "Aucune réponsse pour la commande '" & GUICtrlRead($input1) & $tab[$i] & "'"
         $txt &= $var & @CRLF & "================================================"
      EndIf
   Next
   GUICtrlSetData($Edit2,$txt)
EndFunc

func _cmd($tmp_var)
   dim $sStdOut
   $iPID = Run(GUICtrlRead($input1) & $tmp_var,@WindowsDir, @SW_HIDE, $STDERR_MERGED)
   Do
      $sStdOut &= StdoutRead($iPID)
   Until @error
   return _adapt_aut(StringMid($sStdOut, StringInStr($sStdOut, @CRLF)))
EndFunc

Func _adapt_aut($var)
   $ch = StringSplit("‚,é;Š,è;ƒ,â;ˆ,ê;…,à;—,ù;‡,ç;ÿ, ;“,ô",";")
   for $i = 1 to $ch[0]
      $tmp = StringSplit($ch[$i],",")
      $var = StringReplace($var,$tmp[1],$tmp[2])
   next
   Return $var
EndFunc





______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message [?] Une belle interface pour le batch? 
C'est trop bien Laughing




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Message [?] Une belle interface pour le batch? 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch