Skip navigation.

digital-nation

Blog-note d'un informaticien procrastinate...

AutoIt : récupérer les arguments

, , , , , ,

En regardant encore les scripts qui sont fournis nativement dans AutoIt, et notamment l'excellent AutoUpdateIt, j'ai découvert une petite fonction assez sympathique servant à récupérer les arguments passé en ligne de commande à un exécutable.

; Auteur : Rob Saunders
; Original script : AutoUpdateIt
Func _StringInArray($a_Array, $s_String)
Local $i_ArrayLen = UBound($a_Array) - 1

For $i = 0 To $i_ArrayLen
If $a_Array[$i] = $s_String Then
Return $i
EndIf
Next
SetError(1)
Return 0
EndFunc


Pourquoi réinventer la roue ?
Alors comment fonctionne-t-il ?

Très simplement :

  • Dans le script AutoIt :
    If _StringInArray($CmdLine, "/coucou") Then MsgBox(0, "", "Coucou trouvé !")
    

  • Lancement en ligne de commande (si le script s'appelle test.exe) :
    C:\chemin_complet>test.exe /coucou
    



Pratique mais rarement utilisé toutefois !

Goog ? Installation d’imprimante par script AutoIt

Comments

Anonymous 6. October 2009, 13:47

arno writes:

Salut,

je ne sais pas si tu peux m'aider mais je cherche à remplacer le click sur un bouton par une commande dos... Pour se faire, je cherche à connaitre les otpions à donner à mon exe pour qu'il fasse directement "connecter" dans le cas présent.

merci d'avance

Groumphy 10. October 2009, 11:08

Salut,

En fait il n'y a pas de difficulté ne réside pas dans l'action.

Voici donc le code a faire :


#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 213, 60, 478, 236)
$Button1 = GUICtrlCreateButton("Button1", 8, 8, 97, 33, 0)
GUICtrlSetCursor (-1, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

Case $Button1
EndSwitch
WEnd

Pour la GUI avec le bouton...

Sur le bouton :


Case $Button1
_start("mon_fichier_exemple.bat")


Ou encore si tu veux une action DOS directe:


Case $Button1
Run("C:\mon_fichier.bat")


En fonction (uniquement pour le cas 1) :

; Nom de la fonction : _Start
; Rôle : lancer l'application
; Dépendance :
; Auteur : SvenP (AutoIt Script Forum)
; Modification :
; Version : v1.0.0
; Information importante :
Func _Start($iFileStr)
If @OSType = 'WIN32_NT' Then
$iStartStr = @ComSpec & ' /c start "" '
Else
$iStartStr = @ComSpec & ' /c start '
EndIf
Run($iStartStr & $iFileStr, '', @SW_HIDE)
EndFunc; ==> _Start("myfile.chm")


Bien entendu, il est parfois nécessaire d'avoir un retour de résultat:

Return _start("monFichier.bat")


Bien entendu dans la toute dernière version d'AutoIt tu as les fonctions DOS dans les processus:

#include <Process.au3>
$rc = _RunDos("start Http://www.autoitscript.com")
(vient du fichier d'aide d'AutoIt)

Voila je pense que tu as toutes les possibilités,
En espérant t'avoir aidé,

A+

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies

December 2009
M T W T F S S
November 2009January 2010
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