Frage zu Controlclick und anderen Befehlen

  • Hallo alle zusammen,
    Ich bin neu hier. Heute angemeldet ^^
    Und mit Autoit beschäftige ich mich erst seit gestern...

    Also meine Frage ist..
    Ich hab mir eine GUI erstellt mi Buttons... und wie kann ich nun Befehle auf die Buttons zu weisen?

    Meine GUI ist:


    Es ist für ein spiel gedacht ^^
    Seid nicht zu hart zu mir , ich bin noch ein ziemlicher Neuling in Sachen Autoit :)

    MfG


    Edit#1: Upps^^ jetzt hab ich doch glatt vergessennoch die Frage zu ControlClick zu stellen *gg*
    Alsoichschreiebe in meinen Code

    $nummer1 = Pixelsearch (0,0,1280,1024,0xFFFFFF)
    If not @error Then
    Controlclick ("SRO_Client.exe","" ; jetztkommts... wenn ich mit dem Window info von Autoit in mein Spielgehe, seheichdortnichts voneiner CodeID ;(
    Wie krieg ichdasrauß?
    Danke imVorraus

    MfG sawdaw


    PUSH!
    Bitte helft...eigentlichbrauchichnurnoch zu wissen wie man nen Button mit nemBefehl belegt.... bitte braucheHilfe schnell!

    MfG

    Einmal editiert, zuletzt von sawdaw (12. Januar 2008 um 13:55)

  • Hilfedatei !!! (F1)
    Buttonproblem

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("My GUI Button") ; will create a dialog box that when displayed is centered

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUICoordMode",2)
    $Button_1 = GUICtrlCreateButton ("Run Notepad", 10, 30, 100)
    $Button_2 = GUICtrlCreateButton ( "Button Test", 0, -1)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState () ; will display an dialog box with 2 button

    [/autoit] [autoit][/autoit] [autoit]

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_1
    Run('Notepad.exe') ; Will Run/Open Notepad
    Case $msg = $Button_2
    MsgBox(0, 'Testing', 'Button 2 was pressed') ; Will demonstrate Button 2 being pressed
    EndSelect
    Wend

    [/autoit]

    Botproblem
    http://www.autoit.de/index.php?page=Board&boardID=34

    Gruß
    Greenhorn


  • Das sagt mir nichts ;( ich bin noch neu ^^
    also ich will nur das wenn man auf Start training klickt, das er dann die befehle abgibt die ich dann noch reinschreiben werde. und wenn man auf stop klickt das einfach nur

    While 1
    sleep (1000)
    WEnd
    kommt mehr nicht...
    und bei save settings das es alles in irgendeine datei auf dem desktop abspeichert... und bei exit... kann man sich vorstellen ^^ soll es geschlossen werden...
    das oben versteh ich nicht ....

  • [autoit]

    $text = 'Ich muss die Hilfedatei lesen!'
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    ; deine Befehle !
    Case $Button3
    ; deine Befehle !
    Case $Button4
    FileClose(FileWrite(FileOpen(@DesktopDir & '\Settings.txt', 2), $text))
    Case $Button5
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Einmal editiert, zuletzt von Greenhorn (12. Januar 2008 um 14:35)

  • Jippeyh ich habs gecheckt ^^ ...

    danke dir
    MfG


    Soooo... sehr schön... jetzt nur noch eine Frage...

    Wie kann ich die Geschwindigkeit bei MouseClick und MouseMove einstellen?
    Das die Maus sofort da ist un klick also in 0,01 millisekunden? ^^


  • Supi =)

    [Blockierte Grafik: http://img3.imagebanana.com/img/yiemajo1/thumb/Unbenannt.bmp.png]

    wenn ich dann "alles" hab dann kommt der fehler ... hab jez soweit alles gemacht..


  • Was möchtest Du mit $stop erreichen ???
    So wie Du es schreibst bleibst Du in einer Endlosschleife hängen !


    Gruß
    Greenhorn

    p.s.: Bitte formatiere deinen Code in SciTE, so ist es sehr unleserlich, und benutze im Forumeditor die Buttons 'SP' (Spoiler) und den 'AutoIt Button' (AutoIt Quellcode) ;)


  • Du weist der Variable $start, die Du als Button ID erstellt hast, einen neuen, völlig anderen Wert zu.
    Solltest Du nicht machen. Nimm $pixel = PixelSearch (0,0,1280,1024,0xFFFFFF) oder so ...

    Wenn Du $start gedrückt hast, dann wird alles ausgeführt was Du unterhalb Case $start geschrieben hast. D.h. GuiGetMsg wird unterbrochen bis alles ausgeführt wurde.
    Also musst Du innerhalb dessen was ab $start läuft, regelmässig den $stop Button abfragen, damit Du unterbrechen kannst ...

    Ich seh's mir heute abend noc mal an, muss erst mal Einkaufen ...


    Gruß
    Greenhorn


  • Bei mir sieht das jetzt so aus


    [autoit]

    #include

    [/autoit][autoit][/autoit][autoit]

    #Region ### START Koda GUI section ### Form=
    $Pixelbot = GUICreate("Pixelbot 0.01 v.", 602, 437, 193, 125)
    $start = GUICtrlCreateButton("Start Training", 24, 384, 91, 25, 0)
    $stop = GUICtrlCreateButton("Stop Training", 176, 384, 91, 25, 0)
    $saveall = GUICtrlCreateButton("Save Settings", 328, 384, 91, 25, 0)
    $exit = GUICtrlCreateButton("Exit ", 480, 384, 91, 25, 0)
    $copyright = GUICtrlCreateLabel("©sawdaw", 544, 416, 52, 17)
    $Label1 = GUICtrlCreateLabel("First skill :", 8, 56, 49, 17)
    $Label2 = GUICtrlCreateLabel("Second skiill :", 8, 88, 69, 17)
    $Label3 = GUICtrlCreateLabel("Third Skill :", 8, 120, 59, 17)
    $Label4 = GUICtrlCreateLabel("Fourth Skill :", 8, 152, 62, 17)
    $Label5 = GUICtrlCreateLabel("Fivth Skill :", 8, 184, 55, 17)
    $Imbu = GUICtrlCreateLabel("Imbue Skill :", 8, 24, 61, 17)
    $berserk = GUICtrlCreateCheckbox("Use berserk?", 224, 32, 97, 17)
    $hp = GUICtrlCreateSlider(424, 64, 78, 21)
    $Label6 = GUICtrlCreateLabel("HP 0%", 384, 64, 42, 17)
    $Label7 = GUICtrlCreateLabel("25%", 440, 48, 24, 17)
    $Label8 = GUICtrlCreateLabel("75%", 464, 48, 24, 17)
    $Label9 = GUICtrlCreateLabel("100%", 504, 64, 30, 17)
    $Label10 = GUICtrlCreateLabel("(Coming soon)", 424, 8, 71, 17)
    $mp = GUICtrlCreateSlider(424, 88, 78, 21)
    $Label11 = GUICtrlCreateLabel("MP 0%", 384, 88, 43, 17)
    $Label12 = GUICtrlCreateLabel("100%", 504, 88, 30, 17)
    $Label13 = GUICtrlCreateLabel("Auto Pot System", 424, 24, 82, 17)
    $Label14 = GUICtrlCreateLabel("Pet Auto Pot System", 408, 128, 101, 17)
    $pethp = GUICtrlCreateSlider(424, 144, 78, 21)
    $Label15 = GUICtrlCreateLabel("HP 0%", 384, 144, 42, 17)
    $Label16 = GUICtrlCreateLabel("100%", 504, 144, 30, 17)
    $pickgold = GUICtrlCreateCheckbox("Pick up Gold?", 224, 56, 97, 17)
    $imbue = GUICtrlCreateInput("", 80, 24, 41, 21)
    $skill1 = GUICtrlCreateInput("", 80, 56, 41, 21)
    $skill2 = GUICtrlCreateInput("", 80, 88, 41, 21)
    $skill3 = GUICtrlCreateInput("", 80, 120, 41, 21)
    $skill4 = GUICtrlCreateInput("", 80, 152, 41, 21)
    $skill5 = GUICtrlCreateInput("", 80, 184, 41, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $start
    Sleep (1000)
    Send ("{F12}")
    Sleep (1000)
    While 1
    $start = PixelSearch (300,300,1280,1024,0xFFFFFF)
    If not @error Then
    MouseClick ("left",$start[0],$start[1],2,0)
    Send ($imbue)
    Send ($skill1)
    Sleep (500)
    Send ($skill2)
    Sleep (500)
    Send($skill3)
    Sleep (500)
    Send($skill4)
    Sleep (500)
    Send ($skill5)
    Sleep (500)
    EndIf
    WEnd

    Case $stop
    Sleep (100)
    While 1
    Sleep (1999)
    WEnd
    Case $saveall
    FileWrite ("settings.exe")

    Case $exit
    Send (Exit)
    EndSwitch
    WEnd

    [/autoit]


    Jetzt wollte ich fragen... obwohl ich nichts bei

    [autoit]

    $skill1 = GUICtrlCreateInput("", 80, 56, 41, 21)
    $skill2 = GUICtrlCreateInput("", 80, 88, 41, 21)
    $skill3 = GUICtrlCreateInput("", 80, 120, 41, 21)
    $skill4 = GUICtrlCreateInput("", 80, 152, 41, 21)
    $skill5 = GUICtrlCreateInput("", 80, 184, 41, 21)

    [/autoit]

    reingeschrieben hab, drückt er trotzdem im Spiel die Tasten. Wenn ich jedoch was reinschreibe, drückt er die Tasten die da garnicht drinn stehen...
    Und er drückt sie wie wild durcheinander...

    Bitte um Hilfe

    MfG
    PS:Greenhorn. hast du ICQ / MSN /SKYPE?</GUIConstants.au3>

  • das liegt daran dass du die inputs erst auslesen musst, da er dir sonst die ID des Inputs zurückgibt:

    [autoit]

    $skill1 = GUICtrlCreateInput("", 80, 56, 41, 21)
    $readskill1 = GuiCtrlRead($skill1)
    Send($readskill1) ;jetzt sollte er das Senden was in dem Input steht beispielsweise "Hallo" usw

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D