merci d'avance a bouh2 pour ce magnifique tutoriel
Bonjour,
Je me suis toujours demander comment faire tourner plusieurs fonctions en même temps, j'ai trouvé la solution :
La fonction Adlib.
Son utilisation est très simple :
Faire une fonction
...
AdlibEnable ("la fonction", la fréquence)
...
AdlibDisable
Voici un code qui montre comment il marche
Le programme va afficher un message toute les 2 secondes tout en étant dans la boucle.
Mais le problème c'est que c'est léger heureusement un anglais à fait une include pour ajouter les fonctions manquantes
L'include est téléchargeable ci dessous (fichier joint)
L'include est à mettre dans le dossier AutoIt\Include
Voici comment elle marche :
_AdlibEnable ( "la fonction" [, tout les x ms [, nombre de fois [, autre paramètre]]] ) retourne l'ID
_AdlibDisable (ID) Désactive l'Adlib de l'ID
_AdlibPause (ID) Met en pause l'Adlib de l'ID
_AdlibResume (ID) Enleve la pause de l'ID
_AdlibMainFreq ( )
_AdlibFreq (ID) Redéfini la frequence de l'ID
_AdlibFunc(ID) Trouve la fonction de l'ID
_AdlibID ( func ) Trouve l'ID de la fonction
_AdlibParams (ID) Donne les informations de l'ID sous le code ci dessous
_AdlibActive (ID) retourne activer ou stopper de l'ID
Param retourne :
$array[0] = (More or less) proper function name incl. parenthesis and parameters (if given and not an array). ??
$array[1] = Status ,1 pour activer, 0 pour stopper, 2 pour en pause.
$array[2] = la fonction qui correspond ("" si stopper)
$array[3] = la frequence (0 si stopper
$array[4] = nombre de fois ?
$array[5] = paramètres défini
Toute les fonctions sont visibles dans l'exemple suivant :
Voilà, c'est très facile à utiliser et très pratique !
Source : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Faire un don à cadernis pour le soutenir : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Bonjour,
Je me suis toujours demander comment faire tourner plusieurs fonctions en même temps, j'ai trouvé la solution :
La fonction Adlib.
Son utilisation est très simple :
Faire une fonction
...
AdlibEnable ("la fonction", la fréquence)
...
AdlibDisable
Voici un code qui montre comment il marche
Code:
AdlibEnable ("BoucleMessage", 2000) ;lance la fonction BoucleMessage toute les 2 secondes
Global $count = 1
While 1
Sleep (250)
If $count > 6 Then
MsgBox (0,"","C'est fini")
AdlibDisable ()
Exit
Endif
Wend
Func BoucleMessage()
ToolTip("On est à la boucle" & $count,$count*100, 0)
$count += 1
EndFunc
Le programme va afficher un message toute les 2 secondes tout en étant dans la boucle.
Mais le problème c'est que c'est léger heureusement un anglais à fait une include pour ajouter les fonctions manquantes
L'include est téléchargeable ci dessous (fichier joint)
L'include est à mettre dans le dossier AutoIt\Include
Voici comment elle marche :
_AdlibEnable ( "la fonction" [, tout les x ms [, nombre de fois [, autre paramètre]]] ) retourne l'ID
_AdlibDisable (ID) Désactive l'Adlib de l'ID
_AdlibPause (ID) Met en pause l'Adlib de l'ID
_AdlibResume (ID) Enleve la pause de l'ID
_AdlibMainFreq ( )
_AdlibFreq (ID) Redéfini la frequence de l'ID
_AdlibFunc(ID) Trouve la fonction de l'ID
_AdlibID ( func ) Trouve l'ID de la fonction
_AdlibParams (ID) Donne les informations de l'ID sous le code ci dessous
_AdlibActive (ID) retourne activer ou stopper de l'ID
Param retourne :
$array[0] = (More or less) proper function name incl. parenthesis and parameters (if given and not an array). ??
$array[1] = Status ,1 pour activer, 0 pour stopper, 2 pour en pause.
$array[2] = la fonction qui correspond ("" si stopper)
$array[3] = la frequence (0 si stopper
$array[4] = nombre de fois ?
$array[5] = paramètres défini
Toute les fonctions sont visibles dans l'exemple suivant :
Code:
#cs
;#=#INDEX#===================================================#
;# Title .........: _AdlibExample.au3
;# Description ...: Example script for _Adlib.au3 UDF
;# Date ..........: 6.11.08
;# Author ........: jennico (jennicoattminusonlinedotde)
;#===========================================================#
#ce
#Include <_Adlib.au3>
Dim $b[11],$l[11]
$name="_AdlibEnable,_AdlibDisable,_AdlibPause,_AdlibResume,_AdlibMainFreq,"
$name&="_AdlibFreq,_AdlibFunc,_AdlibID,_AdlibParams,_AdlibActive"
$name=StringSplit($name,",")
GUICreate("_Adlib Test")
GUICtrlCreateLabel("ID 1:",10,10,30,20)
GUICtrlCreateLabel("ID 2:",10,40,30,20)
GUICtrlCreateLabel("ID 3:",10,70,30,20)
GUICtrlCreateLabel("ID 4:",10,100,30,20)
GUICtrlCreateLabel("ID 5:",10,130,30,20)
GUICtrlCreateLabel("ID 6:",10,160,30,20)
GUICtrlCreateLabel("ID 7:",10,190,30,20)
GUICtrlCreateLabel("ID 8:",10,220,30,20)
GUICtrlCreateLabel("ID 9:",10,250,30,20)
GUICtrlCreateLabel("ID 10:",10,280,30,20)
$l[1]=GUICtrlCreateLabel("",50,10,50,20)
$l[2]=GUICtrlCreateLabel("",50,40,50,20)
$l[3]=GUICtrlCreateLabel("",50,70,50,20)
$l[4]=GUICtrlCreateLabel("",50,100,50,20)
$l[5]=GUICtrlCreateLabel("",50,130,50,20)
$l[6]=GUICtrlCreateLabel("",50,160,50,20)
$l[7]=GUICtrlCreateLabel("",50,190,50,20)
$l[8]=GUICtrlCreateLabel("",50,220,50,20)
$l[9]=GUICtrlCreateLabel("",50,250,50,20)
$l[10]=GUICtrlCreateLabel("",50,280,50,20)
$b[1]=GUICtrlCreateButton($name[1],200,10,100,20)
$b[2]=GUICtrlCreateButton($name[2],200,40,100,20)
$b[3]=GUICtrlCreateButton($name[3],200,70,100,20)
$b[4]=GUICtrlCreateButton($name[4],200,100,100,20)
$b[5]=GUICtrlCreateButton($name[5],200,130,100,20)
$b[6]=GUICtrlCreateButton($name[6],200,160,100,20)
$b[7]=GUICtrlCreateButton($name[7],200,190,100,20)
$b[8]=GUICtrlCreateButton($name[8],200,220,100,20)
$b[9]=GUICtrlCreateButton($name[9],200,250,100,20)
$b[10]=GUICtrlCreateButton($name[10],200,280,100,20)
GUISetState()
_AdlibEnable("_1",1000)
_AdlibEnable("_2",2000)
_AdlibEnable("_3",3000)
_AdlibEnable("_4",4000)
_AdlibEnable("_5",5000)
_AdlibEnable("_6",6000)
_AdlibEnable("_7",7000)
_AdlibEnable("_8",8000)
_AdlibEnable("_9",9000)
_AdlibEnable("_0",10000)
Do
$msg=GUIGetMsg()
For $i=1 To 10
If $msg=$b[$i] Then Main($i)
Next
Until $msg=-3
Func Main($i)
SoundPlay(@WindowsDir&"\Media\start.wav")
If $i=1 Or $i>5 Then
If $i=10 Then
$t1=_AdlibActive()
$t2=@extended
$ret="active: "&$t1[0]&" instance(s)"&@CRLF&"( "
For $j=1 To $t1[0]
$ret&=$t1[$j]&" "
Next
$ret&=")"&@CRLF&"paused: "&$t2&" instance(s)"
Else
$func=InputBox($name[$i],"Choose Instance (0-9, 0=10)",""," 1")
SoundPlay(@WindowsDir&"\Media\start.wav")
If @error Then Return
If $func="0" Then $func=10
$func=Number($func)
If $i=1 Then
$time=Number(InputBox($name[$i],"Choose Frequency"))
SoundPlay(@WindowsDir&"\Media\start.wav")
If $time=0 Then Return
$count=InputBox($name[$i],"Choose Count (Enter 0 or nothing for continuous)")
SoundPlay(@WindowsDir&"\Media\start.wav")
If @error Then Return
$count=Number($count)
If $count=0 Then $count=10
$ret=_AdlibEnable("_"&$func,$time,$count)
ElseIf $i=9 Then
If $func="" Then Return
$ret=""
$res=_AdlibParams($func)
For $j=0 To 4
$ret&=$res[$j]&@CRLF
Next
EndIf
If $i=6 Then $ret=_AdlibFreq($func)
If $i=7 Then $ret=_AdlibFunc($func)
If $i=8 Then $ret=_AdlibID("_"&$func)
EndIf
MsgBox(0,$name[$i],$ret)
ElseIf $i=5 Then
MsgBox(0,$name[$i],_AdlibMainFreq())
Else
$func=InputBox($name[$i],"Choose Instance (0-9, 0=10)"&@CRLF _
&"Enter nothing for all instances",""," 1")
If @error Then Return
If $func="0" Then $func=10
$func=Number($func)
If $i=2 Then
_AdlibDisable($func)
If $func=0 Then
For $j=1 To 10
GUICtrlSetData($l[$j],"")
Next
Else
GUICtrlSetData($l[$func],"")
EndIf
EndIf
If $i=3 Then _AdlibPause($func)
If $i=4 Then _AdlibResume($func)
EndIf
SoundPlay(@WindowsDir&"\Media\start.wav")
EndFunc
Func _1()
GUICtrlSetData($l[1],@SEC)
EndFunc
Func _2()
GUICtrlSetData($l[2],@SEC)
EndFunc
Func _3()
GUICtrlSetData($l[3],@SEC)
EndFunc
Func _4()
GUICtrlSetData($l[4],@SEC)
EndFunc
Func _5()
GUICtrlSetData($l[5],@SEC)
EndFunc
Func _6()
GUICtrlSetData($l[6],@SEC)
EndFunc
Func _7()
GUICtrlSetData($l[7],@SEC)
EndFunc
Func _8()
GUICtrlSetData($l[8],@SEC)
EndFunc
Func _9()
GUICtrlSetData($l[9],@SEC)
EndFunc
Func _0()
GUICtrlSetData($l[10],@SEC)
EndFunc
Voilà, c'est très facile à utiliser et très pratique !
Source : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Faire un don à cadernis pour le soutenir : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!