Script schließt sich sofort [REOPENED]

  • Wie kann ich verhindern, dass sich das Script sofort schließt?

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    $dll = DllOpen("user32.dll")

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

    While _IsPressed("20" , $dll)
    Send("{Space}")
    Sleep(8)
    Send("{Space}")
    Sleep(8)
    WEnd

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

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    $mainwindow = GUICreate("Funktionen", 250, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    GUICtrlCreateLabel("Press F9 to exit or close this!!!", 30, 10)
    GUICtrlCreateLabel("Close this window to exit", 70, 40)
    $okbutton = GUICtrlCreateButton("OK", 80, 70, 80)
    GUICtrlSetOnEvent($okbutton, "OKButton")
    GUISetState(@SW_SHOW)

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

    Func OKButton()
    MsgBox(0, "GUI Event", "Have fun ;)")
    EndFunc

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

    Func CLOSEClicked()
    MsgBox(0, "GUI Event", "Du hast auf CLOSE geklickt! Programm wird beendet...")
    Exit
    EndFunc

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

    HotKeySet("{F9}", "_close" )

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

    Func _close()
    Exit
    EndFunc

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

    Lg

    2 Mal editiert, zuletzt von Noci (3. Februar 2011 um 19:51)

    • Offizieller Beitrag

    Welchen Sinn das Script hat weiß ich nicht, aber so funzt es:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $dll = DllOpen("user32.dll")

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

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    $mainwindow = GUICreate("Funktionen", 250, 150)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    GUICtrlCreateLabel("Press F9 to exit or close this!!!", 30, 10)
    GUICtrlCreateLabel("Close this window to exit", 70, 40)
    $okbutton = GUICtrlCreateButton("OK", 80, 70, 80)
    GUICtrlSetOnEvent($okbutton, "OKButton")
    GUISetState(@SW_SHOW)
    While 1
    While _IsPressed("20", $dll)
    Send("{Space}")
    Sleep(8)
    Send("{Space}")
    Sleep(8)
    WEnd
    WEnd

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

    Func OKButton()
    MsgBox(0, "GUI Event", "Have fun ;)")
    EndFunc ;==>OKButton

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

    Func CLOSEClicked()
    MsgBox(0, "GUI Event", "Du hast auf CLOSE geklickt! Programm wird beendet...")
    Exit
    EndFunc ;==>CLOSEClicked

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

    HotKeySet("{F9}", "_close")

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

    Func _close()
    Exit
    EndFunc ;==>_close

    [/autoit]

    Für was braucht man ein Script, das beim drüchen von Space 2 mal Space gesendet wird?

  • Danke Raupi ;D
    Aber du hast recht, das Script soll mir Arbeit abnehmen, da es in einem Programm einfach nicht möglich ist auf Leertaste zu bleiben sondern man sie ständig neu anschlagen muss X(
    Ich möchte erzielen, das Leertaste solange gedrückt wird, bis ich sie wieder loslasse.
    Ich dachtem ir so wäre das evt. möglich aber anscheind funktionierts nicht ...

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    $dll = DllOpen("user32.dll")

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

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    $mainwindow = GUICreate("by N0C1", 410, 90)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    GUICtrlCreateLabel("Press F9 or Close to exit/close this!!!", 120, 10)
    GUICtrlCreateLabel("Welcome ", 10, 30)
    $okbutton = GUICtrlCreateButton("Close", 170, 50, 80)
    GUICtrlSetOnEvent($okbutton, "OKButton")
    GUISetState(@SW_SHOW)

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

    Global $Status = 0

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

    If _IsPressed("20" , $dll) Then
    Global $Status = 1
    EndIf

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

    While 1
    If $Status = 1 Then
    _Space()
    EndIf
    WEnd

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

    Func _Space()
    Send("{Space}")
    Sleep(8)
    Send("{Space}")
    Sleep(8)
    EndFunc

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

    Func OKButton()
    MsgBox(0, "Message", "Have fun ;)")
    Exit
    EndFunc ;==>OKButton

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

    Func CLOSEClicked()
    MsgBox(0, "Message", "Du hast auf CLOSE geklickt! Programm wird beendet...")
    Exit
    EndFunc ;==>CLOSEClicked

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

    HotKeySet("{F9}", "_close")

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

    Func _close()
    Exit
    EndFunc ;==>_close

    [/autoit]

    Was mache ich falsch?

    Einmal editiert, zuletzt von Noci (3. Februar 2011 um 19:54)

  • spätestens jetzt frage ich nach Sinn und Zweck.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Zitat

    Aber du hast recht, das Script soll mir Arbeit abnehmen, da es in einem Programm einfach nicht möglich ist auf Leertaste zu bleiben sondern man sie ständig neu anschlagen muss X(
    Ich möchte erzielen, das Leertaste solange gedrückt wird, bis ich sie wieder loslasse.
    Ich dachtem ir so wäre das evt. möglich aber anscheind funktionierts nicht ...

    ....

  • wenn das Deine Antwort bleibt bin ich für Thread Close.
    Danke ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Okay :O
    Warum auch immer???
    Wer von euch LightWorks kennt (Videoschnitt) kennt es evt. jedenfalls brauche ich viele einzelne Frames für ein Movie-Edit.
    Da ich Schnitt auf Space habe (angenehmer) soll es Space drücken um den Clip zu teilen während ich ihn einfach laufen lassen.
    Allerdings brauch ich an manchen Stellen längere Sequenzen, deswegen soll er aufhören sobald ich loslasse.
    Ich hoffe das ist genug an Antwort oder noch Film, Effekte, Musik???

    [EDIT] By the way: GUI spielerei ist nur weil ich noch in Autoit Startphase bin und etwas üben möchte ;)

  • siehst Du... ;)

    Ich denke Dein Ansatz ist erstmal falsch.
    Helfen können wir erst ab jetzt.
    Hättest und viel Zeit sparen können...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Ich würde sagen, du kannst die Leertaste nicht doppelt verwenden. Soll heißen: Du brauchst eine andere Taste, die du gedrückt hältst (oder zweimal drückst - zum Starten und zum Beenden), während das Skript dann die Leertaste wiederholt drückt.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.