Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[?]Valider une ligne pour executer une action par la touche enter ?
Auteur Message
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Bonjour
J'aimerai faire une console cmd guidé en autoit c'est à dire que mon interface disposerait de bouton donnant des actions qui s afficheraient dans une editbox et qui devra être complété par l'utilisateur , puis elle devra être valider par la touche enter pour lancer une action cmd.

Exemple : bouton 1 -> dir /w
je clique sur bouton 1
ça s'affiche dans edibox : dir /w
l utilisateur complète par : c*.* par exemple ce qui donne dir /w c*.*
puis valide par enter et obtient le résultat voulu.

j'aimerai savoir si en autoit il est possible de valider une ligne par la touche enter dans une editbox et si ce projet est réalisable d'apres vous ?




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Salut,

Je sais pas si j'ai saisis à la lettre ce que tu demande, mais je pense que c'est faisable.

-> je vais te faire un script et tu me dira si sa te convient (j'éditerai ce post)

EDIT:
essaye sa:
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("Form1", 504, 554, 192, 124)
$Button1 = GUICtrlCreateButton("Commande dir", 32, 16, 89, 33)
$Input1 = GUICtrlCreateInput("Input1", 8, 96, 489, 21)
$Label1 = GUICtrlCreateLabel("Commande complete:", 8, 64, 106, 17)
$Button2 = GUICtrlCreateButton("Exécuter la commande (ENTREE)", 8, 128, 200, 33)
$Edit1 = GUICtrlCreateEdit("", 8, 168, 489, 377)
GUICtrlSetData(-1, "Edit1")
$Button3 = GUICtrlCreateButton("Commande ipconfig", 136, 16, 105, 33)
$Button4 = GUICtrlCreateButton("Commande systeminfo", 248, 16, 121, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

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

func _executer_la_commande()
   GUICtrlSetData($Edit1,"Exécution de la commande en cours ...")
   GUICtrlSetData($Edit1,_cmd(GUICtrlRead($Input1)))
EndFunc

func _cmd($tmp_var)
   $iPID = Run("cmd.exe /C " & $tmp_var,@WindowsDir, @SW_HIDE, $STDERR_MERGED)
   $sStdOut = ""
   Do
      $sStdOut &= StdoutRead($iPID)
   Until @error
   return _adapt_aut(StringMid($sStdOut, StringInStr($sStdOut, @CRLF)))
EndFunc

Func _adapt_aut($tmp_var)
   $tmp_var = StringReplace ( $tmp_var, "‚", "é")
   $tmp_var = StringReplace ( $tmp_var, "Š", "è")
   $tmp_var = StringReplace ( $tmp_var, "ƒ", "â")
   $tmp_var = StringReplace ( $tmp_var, "ˆ", "ê")
   $tmp_var = StringReplace ( $tmp_var, "…", "à")
   $tmp_var = StringReplace ( $tmp_var, "—", "ù")
   $tmp_var = StringReplace ( $tmp_var, "‡", "ç")
   $tmp_var = StringReplace ( $tmp_var, "ÿ", " ")
   $tmp_var = StringReplace ( $tmp_var, "“", "ô")
   Return $tmp_var
EndFunc


au passage si quelqu'un connait un moyen d'optimiser la fonction _adapt_aut($tmp_var) je suis preneur.




______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Bonjour cautex
c'est exactement un truc de ce genre, en fait je bosse avec une commande externe (adb -> smartphone et tablette android) et ça m'enerve devoir tout taper dans cmd entierement.
Par contre ça serait bien si tout pouvait etre dans editbox comme avec cmd avec ligne multiple, penses tu que ce soit possible ?

je tape x lignes et hop je valide le tout par enter et zou




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
ben en gros tu remplace l'input par une editbox et tu fait une boucle qui exécute chaque ligne à la suite ... si j'ai bien compris.

Redis-moi si tu a un problème.




______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Oh là, qu'est ce qe je suis rouillé en autoit moi
je vais tenter.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Pour rester poli j'ai envie de dire ....

Very Happy

Very Happy




______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Je suis motivée le probleme c est le temps, je cours après le temps, du temps surtout pour moi et faire ce que j'aime.

J essaie demain matin je te tiens au courant. Et comme beaucoup mes lacunes sont les boucles lol




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Allé parce que c'est toi ^^

(par contre j'ai remplacé {ENTER} par {F1} )

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




Dernière édition par Cαutex le Ven 22 Juin 2012 - 17:10; édité 1 fois

______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Your the king !!
Merci Cautex tu m'as super avant j ai plus qu'à completer




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
J'ai pu testé en modifiant les commandes que je souhaitai c'est excellentisime, je dois ajouter différentes choses encore et modifier les botuons

Un immense merci Cautex




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [?]Valider une ligne pour executer une action par la touche enter ? 
Ravis de voir que sa te plaise Exclamation




______________________________________________________
Mes principales réalisations: Cp (batch) et IPSvc (autoit)
Message [?]Valider une ligne pour executer une action par la touche enter ? 


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