Problem bei einer kleinen Funktion.

  • Hallo an alle,
    hab da ein kleines Problem bei einer Funktion. Bin mir nicht sicher ob ich die ganzen Codes von Koda brauche, hab sie aber mal gelassen:

    [autoit]

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

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

    #Region ### START Koda GUI section ### Form=
    $Main_Form = GUICreate("Programm", 242, 150, 1079, 212)
    $Pic1 = GUICtrlCreatePic("", 0, 0, 241, 100, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $Stop = GUICtrlCreateButton("Stop", 128, 112, 105, 25, 0)
    $Start= GUICtrlCreateButton("Start", 8, 112, 105, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

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

    Func Stop()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    WEnd
    EndFunc

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

    Func Start()
    While 1
    ControlSend("yyyyy.exe", "", "", "{ENTER}")
    Sleep(500)
    Wend
    EndFunc

    [/autoit]

    Also wenn man $Start drückt (Button) soll der unbegrenzt "ENTER" drücken, aber das in der yyyyy.exe.
    Klappt aber irgendwir nicht. :\ Bin ein totaller newb hier ^^
    Naja danke schonmal. ^^

    3 Mal editiert, zuletzt von Aydo (24. März 2009 um 17:51)

  • [autoit]

    #include<guiconstantsex.au3>
    guicreate('')
    guisetstate()

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

    $Start= GUICtrlCreateButton("Start", 8, 112, 105, 25, 0)
    $Pause= GUICtrlCreateButton("Pause", 128, 112, 105, 25, 0)
    $Close= GUICtrlCreateButton("Close", 228, 112, 105, 25, 0)

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

    While 1
    If guigetmsg()=$gui_event_close then exitloop
    WEnd

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

    Func start()
    if guigetmsg()=$Start Then
    While 2
    ControlSend("Datei_x", "", "", "{ENTER}")
    Sleep(4000)
    WEnd
    Endif
    EndFunc

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

    Func Pause()
    if GUIGetMsg()=$Pause Then
    While 3
    sleep(100)
    WEnd
    EndIf
    EndFunc

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

    Func Close()
    if GUIGetMsg()=$Close Then
    Exit 0
    EndIf
    EndFunc

    [/autoit]

    Habs mal neu geschrieben... aber aus irgendeinem Grund klappt kein BUTTON bzw. die Funktionen gehen garnicht... kann mir vllt. jemand erklären wieso? ?( ?( ?( ?(

    Einmal editiert, zuletzt von Aydo (23. März 2009 um 21:26)

  • Spoiler anzeigen
    [autoit]

    #include<guiconstantsex.au3>
    guicreate('')
    guisetstate()

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

    $Start= GUICtrlCreateButton("Start", 8, 112, 105, 25, 0)
    $Pause= GUICtrlCreateButton("Pause", 128, 112, 105, 25, 0)
    $Close= GUICtrlCreateButton("Close", 228, 112, 105, 25, 0)
    $Time = TimerInit()
    While 1
    _nMsg()
    Sleep (10)
    WEnd

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

    Func start()
    While 1
    _nMsg()
    If TimerDiff($Time) > 4000 Then
    $Time = TimerInit()
    ControlSend("Datei_x", "", "", "{ENTER}")
    EndIf
    WEnd
    EndFunc

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

    Func Pause()
    While 1
    _nMsg()
    sleep(100)
    WEnd
    EndFunc

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

    Func Close()
    Exit
    EndFunc
    Func _nMsg()
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Start
    start()
    Case $Pause
    Pause()
    Case $Close
    Close()
    EndSwitch
    EndFunc

    [/autoit]

    mfg. Jam00

  • Hey danke klappt alles. :)
    Aber hab das Problem eben das ich kein "X" drücken kann um das Fenster dann auch so zu schließen.
    Vorher hatte ich

    [autoit]

    If guigetmsg()=$gui_event_close then exitloop

    [/autoit]

    zwischen While und WEnd ... aber jetzt gehts nicht mehr. :\

  • Spoiler anzeigen
    [autoit]

    #include<guiconstantsex.au3>
    guicreate('')
    guisetstate()

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

    $Start= GUICtrlCreateButton("Start", 8, 112, 105, 25, 0)
    $Pause= GUICtrlCreateButton("Pause", 128, 112, 105, 25, 0)
    $Close= GUICtrlCreateButton("Close", 228, 112, 105, 25, 0)
    $Time = TimerInit()
    While 1
    _nMsg()
    Sleep (10)
    WEnd

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

    Func start()
    While 1
    _nMsg()
    If TimerDiff($Time) > 4000 Then
    $Time = TimerInit()
    ControlSend("Datei_x", "", "", "{ENTER}")
    EndIf
    WEnd
    EndFunc

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

    Func Pause()
    While 1
    _nMsg()
    sleep(100)
    WEnd
    EndFunc

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

    Func Close()
    Exit
    EndFunc
    Func _nMsg()
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Start
    start()
    Case $Pause
    Pause()
    Case $Close,-3
    Close()
    EndSwitch
    EndFunc

    [/autoit]

    mfg. Jam00

  • Hab da doch noch eine Frage..^^
    Iwie muss ich 150 mal auf Start drücken damit der anfängt... woran liegt das ?

  • Probier mal das Script.
    Bei Pause springt er in die GUI-Schleife zurück, sollte aber nix ausmachen...

    Wenn das Script läuft dann musst Du zuerst auf Pause klicken, und dann erst auf Close.

    [autoit]

    #include<guiconstantsex.au3>
    guicreate('')
    guisetstate()

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

    $Start= GUICtrlCreateButton("Start", 8, 112, 105, 25, 0)
    $Pause= GUICtrlCreateButton("Pause", 128, 112, 105, 25, 0)
    $Close= GUICtrlCreateButton("Close", 228, 112, 105, 25, 0)
    $Time = TimerInit()
    While 1
    $msg = GUIGetMsg()
    select
    case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    case $msg = $Start
    start()
    case $msg = $Pause
    Pause()
    case $msg = $Close
    Close()
    EndSelect
    WEnd

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

    Func start()
    Do
    If TimerDiff($Time) > 4000 Then
    $Time = TimerInit()
    ControlSend("Datei_x", "", "", "{ENTER}")
    EndIf
    until GUIGetMsg() = $Pause
    EndFunc

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

    Func Close()
    Exit
    msgbox(0,"","close")
    EndFunc

    [/autoit]
  • Danke klappt auch mit dem Pause und dann Close. :D
    Aber jetzt passiert nichts wenn ich Start drücke. :\

    EDIT: SORRY, mein Fehler. Hab was Falsches geöffnet!

    Einmal editiert, zuletzt von Aydo (24. März 2009 um 22:16)

  • [autoit]

    Func Close()
    Exit
    msgbox(0,"","close")
    EndFunc

    [/autoit]


    Kann ich das irgendwie so machen, das der hier SELBER nochmal auf "Pause" drückt, damit ich das nicht immer machen muss?

    Oder vllt. bei:

    [autoit]

    Func start()
    Do
    If TimerDiff($Time) > 4000 Then
    $Time = TimerInit()
    ControlSend("Datei_x", "", "", "{ENTER}")
    EndIf
    until GUIGetMsg() = $Pause
    EndFunc

    [/autoit]

    noch ein zweites Until reinsetzen?

    Einmal editiert, zuletzt von Aydo (24. März 2009 um 22:40)

  • Probier mal das, sollte auch funktionieren

    [autoit]

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

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

    AutoIt Version: 3.2.12.1
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

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

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

    #include<guiconstantsex.au3>
    guicreate('')
    guisetstate()

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

    $Start= GUICtrlCreateButton("Start", 8, 112, 105, 25, 0)
    $Pause= GUICtrlCreateButton("Pause", 128, 112, 105, 25, 0)
    $Close= GUICtrlCreateButton("Close", 228, 112, 105, 25, 0)
    $Time = TimerInit()
    While 1
    $msg = GUIGetMsg()
    select
    case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    case $msg = $Start
    start()
    case $msg = $Pause
    Pause()
    case $msg = $Close
    Close()
    EndSelect
    WEnd

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

    Func start()
    Do
    $loopmsg = Guigetmsg()
    If TimerDiff($Time) > 4000 Then
    $Time = TimerInit()
    ControlSend("Datei_x", "", "", "{ENTER}")
    EndIf
    until $loopmsg = $Pause or $loopmsg = $Close

    if $loopmsg = $Close Then
    Close()
    EndIf

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

    EndFunc

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

    Func Close()
    Exit
    EndFunc

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