[R] Utilisation de la fonction 'If'

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

[R] Utilisation de la fonction 'If'

#1

Message par SoilyThang »

Bonjours

j'ai commencer a utilisé autoIt aujourdui , et j'aimerais savoir quelque chose . voici ce que j'ai fait :

Code : Tout sélectionner

MsgBox(4 , "Test" , "Test")
    If $answer = "6" Then
    MsgBox(0 , "sa" , "sa")
    EndIf
Else 
    If $answer = "7" Then
    msgbox(0 , "sa" , "s2a")
    Endif
Le but etant que : il répondent a la question de la box 4 ( donc oui ou non ) et apré suivant la réponsse choisi une action se passe ... ( exemple : il disent oui , sa continu , il disent nan sa quit )



Merci d'avance :)

ps : fo faire quelque chose pour ce forum les pages mettent un temp fou a arrivé =D
Modifié en dernier par SoilyThang le mer. 31 oct. 2007 07:44, modifié 2 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#2

Message par Tlem »

Dans votre cas, 2 approches possibles :

Code : Tout sélectionner

$answer = MsgBox ( 4 , "Test" , "Test" ) 
If $answer = "6" Then 
MsgBox ( 0 , "sa" , "sa" ) 
ElseIf $answer = "7" Then 
msgbox ( 0 , "sa" , "s2a" ) 
Endif[/autoit]Ou alors avec le Case :
[autoit]$answer = MsgBox ( 4 , "Test" , "Test" ) 
Select
Case $answer = "6" 
MsgBox ( 0 , "sa" , "sa" ) 
Case $answer = "7" 
msgbox ( 0 , "sa" , "s2a" ) 
EndSelect
Attention, si la fenêtre de choix peut être fermée par un autre moyen qui Oui/Non, de rajouter une 3ieme condition ...
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é".
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

#3

Message par SoilyThang »

Merci bien :) sa marche ... du moin le 1er

voici le résultat

Code : Tout sélectionner

MsgBox(0 , "test1" , "blabla")
$answer =MsgBox(4 , "test1" , "blabla")
    If $answer ="6" Then
        $var =FileSelectFolder("blabla" , "" )
            If $var ="1" Then
            Exit
            Endif           
            MsgBox(0 , "blalbla", $var )
            $sIni = $var & "\blablabla.ini"
            $sData = "blablabla=" & $var
            IniWriteSection($sIni, "choix1", $sData)
            $id = InputBox("tst1", "tst2", "", "", _
            -1, -1, 0, 0)
                If $id ="1" Then
                exit
            $passwd = InputBox("tst1", "tst1", "", "*")
                If $passwd ="1" Then
                Exit
            $sData = "Id=" & $id &  @LF & "test1=" & $passwd
            IniWriteSection($sIni, "tst2", $sData)
                
    

        
    Else
    If $answer ="7" Then 
    exit
    Endif
    Endif
problemes : la 1ere question ($answer) sa marche , si il dit oui sa continue , si non il quit . Ce qui n'est pas le cas pour $var , $id , $passw . vous voyez l'erreur ?

Merci pour vos réponsses ... par contre le forum tré lent xD ma falu 10 minute pr arrivé sur cette page lol

merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#4

Message par Tlem »

A première vue, plusieurs erreurs.

Code : Tout sélectionner

$var = FileSelectFolder ( "blabla" , "" ) 
If $var = "1" Then
$var ne peut vous renvoyer 1, c'est la variable @error qui le fait.
Sinon $var=""

Essayez ceci :

Code : Tout sélectionner

MsgBox ( 0 , "test1" , "blabla" ) 
$answer = MsgBox ( 4 , "test1" , "blabla" ) 
If $answer = "6" Then 
$var = FileSelectFolder ( "blabla" , "" ) 
if @error Then Exit
MsgBox ( 0 , "blalbla" , $var ) 
$sIni = $var & "\blablabla.ini" 
$sData = "blablabla = " & $var 
IniWriteSection ( $sIni , "choix1" , $sData ) 
$id = InputBox ( "tst1" , "tst2" , "" , "" , - 1 , - 1 , 0 , 0 ) 
if @error Then Exit
$passwd = InputBox ( "tst1" , "tst1" , "" , "*" ) 
if @error Then Exit
$sData = "Id = " & $id & @LF & "test1 = " & $passwd 
IniWriteSection ( $sIni , "tst2" , $sData ) 
Else
If $answer = "7" Then Exit 
EndIf
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é".
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

#5

Message par SoilyThang »

génial je te remercie beacoup :)
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

#6

Message par SoilyThang »

jai crée ce petit script

Code : Tout sélectionner

while 1
    sleep(600000) 
    MouseMove( 941 , 108 , 1)
    mouseclick( 941 , 108 , 1)
    send ("{F3}")
    sleep(3000)
    Send ("{1} ")
    sleep(3000)
    Send ("{2} ")
    sleep(3000)
    Send ("{3} ")
    sleep(3000)
    Send ("{4} ")
    sleep(3000)
    Send ("{5} ")
    sleep(3000)
    Send ("{6} ")
    sleep(3000)
    Send ("{7} ")
    sleep(3000)
    Send ("{8} ")
    sleep(3000)
    send("{9}")
    sleep(1500)
    send ("{F1}")
    Wend
If send( "{F8}") then Exit
 
jaimerai que si l'utilisateur appui sur F8 sa quit le script , j'ai esseyer sa mais sa marche pas ...

merci pour votre aide
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#7

Message par ani »

Etant novice aussi tu peux essayer ceux-ci

Code : Tout sélectionner

HotKeySet("{F8}", "Quitter")

[la boucle while (le code) wend]

Func quitter()
exit
EndFunc

n'indique pas If send( "{F8}") then Exit
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

#8

Message par SoilyThang »

Merci je vais esseyer sa de suite :)

edit : sa marche merci =D
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#9

Message par ani »

si tu regarde à la fonction HotKeySet tu a un exemple, pour stopper, mettre en pause le script.

Mais y surement une autre possibilité (je visionne)
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

#10

Message par SoilyThang »

décidément ce if -_-"

Code : Tout sélectionner

        Run($var & "\sa.exe", "")
        If PixelGetColor ( 496 , 355 ) =0x000000 and PixelGetColor ( 422 , 203 ) =0x5C8F1A Then
            sleep(1000)
            MouseMove(760 , 532 , 5)
            MouseClick("left" , 760 , 532 , 1)
        EndIf
        If PixelGetColor ( 24 , 752 ) =0xFF8080 and PixelGetColor ( 799 , 729 ) =0x1D2424 Then
            sleep(1000)
            send("{ENTER}")
            sleep(1500)
            MouseMove(546 , 430 , 1)
            MouseClick("left" , 546 , 430 , 1)
            sleep(1000)
            send( $id )
            MouseMove(543 , 458 , 1)
            MouseClick("left" , 543 , 458 , 1)
            sleep(1000)
            send( $passwd )
            send("{ENTER}")
            winwaitactive("sasasasa")
        EndIf
            sleep(60000)
j suis presque il me manque pas grand chose .

ici , en fonction de la couuleur du pixel il doit faire une action précise . j'ai fait sa , et sa ne marche pas . il lance le jeux et ne fait plus rien

encore merci :oops: :oops:
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#11

Message par ani »

le pixel (x et y) = 1 ou 0 mais pas une couleur

essaye en mettant 0 et tu cree la boucle comme precedement
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

#12

Message par SoilyThang »

Merci a tous pour votre aide j'ai reussi a faire mon 1er script .

Voici mon deuxieme :lol: :lol:

Toujours le meme probleme , le If -_-"

Code : Tout sélectionner

;--AutoPartyReformer V1.0------
;--xxxxxxxxxxxxxxxxxx---

hotkeyset("{F8}", "Quit")
hotkeyset("{F9}" , "Boucle")
msgbox(0 , "Bienvenue" , "Bienvenue sur l'auto party reformer V1.0")
msgbox(0 , "Bienvenue" , "Cette version est compatible pour la résolution 1024*768 Uniquement")
$answer4= inputbox("Type de Party ?" , "- Exp auto share / Item auto share répondez 1  - Exp auto share / Item Distribution répondez 2    - Exp distribution / Item Distribution répondez 3  - Exp Distribution / Item auto share répondez 4" , "" , "" , 255 , 200)
    If $answer4= 1 Or 2 Then
    $answer1= inputbox("Nom de votre party" , "Veuillez saisir le nom pour votre party")
    $answer2= inputbox("level ?" , " Veuillez saisir le level minimum pour rentrer dans la party")
    $answer3= inputbox("level ?" , " Veuillez saisir le level maximal pour rentré dans la party")
    Endif
msgbox(0 , "Bienvenue", "Rendez vous sur votre fenetre de jeux                                      /!\ A PARTIR D'ICI IL NE FAUT SURTOUT PAS DEPLACER LES FENETRES DE JEUX /!\")
sleep(2500)
send("{ESC}")
Mouseclick("left" , 514 , 348)
sleep(1500)
mouseclick("left" , 552 , 670)
sleep(500)
send("{ESC}")
sleep(500)
msgbox(0 , "Bienvenue" , "Pour lancer l'application appuyer sur F9 , Pour la quitter Appuiyer sur F8")
sleep(3600000)

----------------------A PARTIR D'ICI PLUS RIEN NE SE PASSE----------------------------

func Boucle()   
    
$share1= Pixelgetcolor(181 , 235)
$share2= Pixelgetcolor(181 , 241)
$share3= PixelGetColor(146 , 232)
$distrib1= PixelGetColor(50 , 308)
$distrib2= pixelgetcolor(50 , 314)
$distrib3= PixelGetColor(13 , 301)
$join1= Pixelgetcolor(394 , 504)
$join2= PixelGetColor(372 , 273)
$join3= PixelGetColor(397 , 247)

If $answer4 = "1" or "2" Then
    If $share1<>0xFF5F3B And $share2<>0x7B89FF And $share3<>0x000000 then
        If $answer4= "1" Then
            send("{P}")
            Mousemove( 785 , 652)
            mouseclick("left" , 785 , 652)
            sleep(1000)
            Mousemove( 659 , 437)
            mouseclick("left" , 659 , 437)
            sleep(1000)
            Mousemove( 793 , 436)
            mouseclick("left" , 793 , 436)
            sleep(1000)
            mousemove( 733 , 516)
            mouseclick("left" , 733 , 516)
        Else
        if $answer4= "2" Then
            send("{P}")
            Mousemove( 785 , 652)
            mouseclick("left" , 785 , 652)
            sleep(1000)
            Mousemove( 659 , 437)
            mouseclick("left" , 659 , 437)
            sleep(1000)
            Mousemove( 791 , 456)
            mouseclick("left" , 791 , 456)
            sleep(1000)
            mousemove( 733 , 516)
            mouseclick("left" , 733 , 516)
        Endif
    sleep(2500)
    send("{E}")
    mousemove( 614 , 590 )
    Mouseclick( "left" , 614 , 590 )
    mousemove(579 , 495 )
    mouseclick("left" , 579 , 495 )
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send("{BS}")
    send($answer1)
    mousemove(480 , 355 )
    mouseclick("left" , 480 , 355 )
    send("{BS}")
    send($answer2)
    mousemove(611 , 358)
    mouseclick("left" , 611 , 358)
    send("{BS}")
    send("{BS}")
    send($answer3)
    mousemove(461 , 452)
    mouseclick("left" , 461 , 542)
    Endif
    If $join1=0x212021 And $join2= and $join3=0x181818 Then
        MouseMove( 474 , 507)
        mouseclick("left" , 474 , 507)
    Endif   
Else
If $answer4= "3" or "4" Then
    If $distrib1<>0xFF5F3B And $distrib2<>0x7B89FF And $distrib3<>0x000000 then
        If $answer4= "3" Then
            send("{P}")
            Mousemove( 785 , 652 )
            mouseclick("left" , 785 , 652)
            sleep(1000)
            Mousemove( 659 , 457)
            mouseclick("left" , 659 , 457)
            Mousemove( 791 , 456)
            mouseclick("left" , 791 , 456)
            mousemove( 733 , 516)
            mouseclick("left" , 733 , 516)
        Else
            if $answer4= "4" Then
            send("{P}")
            Mousemove( 785 , 652)
            mouseclick("left" , 785 , 652)
            Mousemove( 659 , 457)
            mouseclick("left" , 659 , 457)
            Mousemove( 659 , 457 )
            mouseclick("left" , 659 , 457)
            mousemove( 793 , 436)
            mouseclick("left" ,  793 , 436)
            Endif
        Endif
    sleep(2500)
    send("{E}")
    mousemove( 614 , 590 )
    Mouseclick( "left" , 614 , 590 )
    mousemove(461 , 452)
    mouseclick("left" , 461 , 542)
    Endif
    If $join1=0x212021 And $join2= and $join3=0x181818 Then
        MouseMove( 474 , 507)
        mouseclick("left" , 474 , 507)
    Endif
EndIf
Endif
Endif 
Endfunc

func Quit()
exit
Endfunc
 

merci d'avance :P
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#13

Message par ani »

If $join1=0x212021 And $join2= and $join3=0x181818 Then

la valeur pour $join2 est indefini

au niveau de l'inputbox tu devrai ajouter des retour a la ligne (@cr) entre chaque choix, comme ci dessous

$answer4= inputbox("Type de Party ?" , "- Exp auto share / Item auto share répondez 1"&@CR&"- Exp auto share / Item Distribution répondez 2"&@CR&"- Exp distribution / Item Distribution répondez 3"&@CR&"- Exp Distribution / Item auto share répondez 4" , "" , "" , 255 , 200)
SoilyThang
Niveau 3
Niveau 3
Messages : 43
Enregistré le : lun. 29 oct. 2007 21:20
Status : Hors ligne

#14

Message par SoilyThang »

oh le noob :P

Merci :P
Répondre