Appeler un script dans un autre script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
salora71
Niveau 1
Niveau 1
Messages : 1
Enregistré le : ven. 08 sept. 2017 14:52
Status : Hors ligne

Appeler un script dans un autre script

#1

Message par salora71 »

Bonjour à tous,

N'ayant pas réussi à faire ce que je voulais sur VBA (que je maîtrise assez bien), et après plusieurs recherche sur internet, je me suis rendu compte qu'AutoIt pouvait m'aider (sachant que je n'avais utilisé ce logiciel).

Après quelques jours de bataille j'ai réussi à faire ce que je voulais. En fait j'ai 9 scripts différents qui simulent des cliques sur internet. Bref jusque là tout va bien. Ces 9 scripts au format .au3 sont sur mon bureau.

L'objectif est de créer 27 scripts qui correspondent à 27 combinaisons différentes des 10 scripts de bases, c'est-à-dire 27 scripts qui appellent 3 scripts différents.

Pour faire simple je recherche l'équivalent de VBA :

Code : Tout sélectionner

Sub Actualiser()
Call Zero
Call Difzéro
Call Negatif
End Sub
que je créerai 27 fois selon les combinaisons.

Après de nombreuses recherches je n'ai rien trouvé, et comme je n'ai découvert AutoIt il n'y a que quelques jours...

Voilà voilà

Je m'excuse si le sujet a déjà été abordé sur le forum, mais je n'ai trouvé en tout cas.

Si quelqu'un peut m'aider

Merci
nibors
Niveau 1
Niveau 1
Messages : 7
Enregistré le : lun. 17 oct. 2016 15:54
Status : Hors ligne

Re: Appeler un script dans un autre script

#2

Message par nibors »

Bonjour,

A priori si j'ai bien compris ton problème il te suffit de compiler tes 10 scripts de base puis de les appeler dans tes 27 scripts

Code : Tout sélectionner

func executerSequenceScript()
RunWait("script1.exe")
RunWait("script2.exe")
RunWait("script3.exe")
endfunc
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Appeler un script dans un autre script

#3

Message par Tlem »

Bonsoir.
@nibors : La compilation en Exe n'est pas nécessaire. Un script au3 peux être appelé de différentes manières. Ex : "C:\Program Files (x86)\AutoIt3\AutoIt3.exe" "c:\......\MonScript.au3" ou plus simplement : RunWait(@AutoItExe & " c:\......\MonScript.au3")
Si l'association au3 a été faite (installation) alors ShellExecuteWait("Script2.au3") fonctionnera aussi.

@salora71
Juste une remarque : Au début de votre message, vous dites :
En fait j'ai 9 scripts différents qui simulent des cliques sur internet
et une ligne plus loin
27 combinaisons différentes des 10 scripts de bases
Après il faudrait voir quelle est la longueur de chaque script de base, mais en l'état, je regrouperais les 9 ou 10 scripts de base sous forme de fonctions dans un seul script.
Ensuite je créerais une interface graphique avec 27 boutons pour lancer les séquences tel que je le désire. ^^

Cela donnerais quelque chose dans ce genre :

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version : 3.3.14.2
 Auteur:

 Fonction du Script :
	Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------

; Début du script - Ajouter votre code ci-dessous.
#pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico)

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

#Region ### START Koda GUI section ### Form=d:\users\tlem\desktop\form1.kxf
Global $Form1_1 = GUICreate("Form1", 537, 322, 185, 138)
Global $Button1 = GUICtrlCreateButton("Button1", 24, 32, 75, 25)
Global $Button2 = GUICtrlCreateButton("Button2", 120, 32, 75, 25)
Global $Button3 = GUICtrlCreateButton("Button3", 216, 32, 75, 25)
Global $Button4 = GUICtrlCreateButton("Button4", 312, 32, 75, 25)
Global $Button5 = GUICtrlCreateButton("Button5", 408, 32, 75, 25)
Global $Button6 = GUICtrlCreateButton("Button6", 24, 80, 75, 25)
Global $Button7 = GUICtrlCreateButton("Button7", 120, 80, 75, 25)
Global $Button8 = GUICtrlCreateButton("Button8", 216, 80, 75, 25)
Global $Button9 = GUICtrlCreateButton("Button9", 312, 80, 75, 25)
Global $Button10 = GUICtrlCreateButton("Button10", 408, 80, 75, 25)
Global $Button11 = GUICtrlCreateButton("Button11", 24, 128, 75, 25)
Global $Button12 = GUICtrlCreateButton("Button12", 120, 128, 75, 25)
Global $Button13 = GUICtrlCreateButton("Button13", 216, 128, 75, 25)
Global $Button14 = GUICtrlCreateButton("Button14", 312, 128, 75, 25)
Global $Button15 = GUICtrlCreateButton("Button15", 408, 128, 75, 25)
Global $Button16 = GUICtrlCreateButton("Button16", 24, 176, 75, 25)
Global $Button17 = GUICtrlCreateButton("Button17", 120, 176, 75, 25)
Global $Button18 = GUICtrlCreateButton("Button18", 216, 176, 75, 25)
Global $Button19 = GUICtrlCreateButton("Button19", 312, 176, 75, 25)
Global $Button20 = GUICtrlCreateButton("Button20", 408, 176, 75, 25)
Global $Button21 = GUICtrlCreateButton("Button21", 24, 224, 75, 25)
Global $Button22 = GUICtrlCreateButton("Button22", 120, 224, 75, 25)
Global $Button23 = GUICtrlCreateButton("Button23", 216, 224, 75, 25)
Global $Button24 = GUICtrlCreateButton("Button24", 312, 224, 75, 25)
Global $Button25 = GUICtrlCreateButton("Button25", 408, 224, 75, 25)
Global $Button26 = GUICtrlCreateButton("Button26", 24, 272, 75, 25)
Global $Button27 = GUICtrlCreateButton("Button27", 120, 272, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

	 Case $Button1
		 FB1()
		 FB2()
		 FB3()

	 Case $Button2
		 FB4()
		 FB5()
		 FB6()

	 Case $Button3
		 FB7()
		 FB8()
		 FB9()

	 Case $Button4

	 Case $Button5

	 Case $Button6

	 Case $Button7

	 Case $Button8

	 Case $Button9

	 Case $Button10

	 Case $Button11

	 Case $Button12

	 Case $Button13

	 Case $Button14

	 Case $Button15

	 Case $Button16

	 Case $Button17

	 Case $Button18

	 Case $Button19

	 Case $Button20

	 Case $Button21

	 Case $Button22

	 Case $Button23

	 Case $Button24

	 Case $Button25

	 Case $Button26

	 Case $Button27

 EndSwitch
WEnd


Func FB1 ()
	; Code de la fonction de base N°1
	MsgBox(64, "Infos", "Fonction de base N°1")
EndFunc

Func FB2 ()
	; Code de la fonction de base N°2
	MsgBox(64, "Infos", "Fonction de base N°2")
EndFunc

Func FB3 ()
	; Code de la fonction de base N°3
	MsgBox(64, "Infos", "Fonction de base N°3")
EndFunc

Func FB4 ()
	; Code de la fonction de base N°4
	MsgBox(64, "Infos", "Fonction de base N°4")
EndFunc

Func FB5 ()
	; Code de la fonction de base N°5
	MsgBox(64, "Infos", "Fonction de base N°5")
EndFunc

Func FB6 ()
	; Code de la fonction de base N°6
	MsgBox(64, "Infos", "Fonction de base N°6")
EndFunc

Func FB7 ()
	; Code de la fonction de base N°7
	MsgBox(64, "Infos", "Fonction de base N°7")
EndFunc

Func FB8 ()
	; Code de la fonction de base N°8
	MsgBox(64, "Infos", "Fonction de base N°8")
EndFunc

Func FB9 ()
	; Code de la fonction de base N°9
	MsgBox(64, "Infos", "Fonction de base N°9")
EndFunc

Func FB10 ()
	; Code de la fonction de base N°10
	MsgBox(64, "Infos", "Fonction de base N°10")
EndFunc
Évidemment je n'ai pas tous complété et il est aussi possible de modifier l'affichage pour mettre plutôt en ligne, ou pour régler la taille des boutons ou tout autre fonctionnalité ou visualisation qui vous ferait plaisir. En attendent ceci n'est qu'une idée parmi tant d'autres. Vous pourriez aussi envisager une fenêtre bien plus simple avec seulement un combo à liste. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre