Button - Paste führt zum Programmende

  • Hallo,

    ich hatte gestern ja schon zunächst dieses (gelöste) merkwürdige Problem.

    Jetzt habe ich in dieser Konstellation mit diesen grafischen Buttons die nachfolgenden simplen Anweisungen geschrieben. Es soll der "Copy"-Button nur den markierten Text irgendeines Feldes in die Zwischenablage kopieren (Strg+c) und der "Einfügen"-Button diesen in irgendeinem Feld wieder einfügen (Strg+v). Der "Copy"-Button mit send funktioniert. Der "Einfügen"-Button dagegen nicht. Wird dieser betätigt, wird zwar der Text eingefügt, das Programm wird dann nach (!) dem sleep beendet. Wird das sleep auf 10 Sekunden gestellt, beendet sich das Programm nach 10 Sekunden. Also kein akuter Programmabsturz. Im Textmenü funktioniert das alles einwandfrei mit diesen Funktionen.

    [autoit]


    If _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idCut) then
    _ausschneiden()
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idCopy) then
    _kopieren()
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idPaste) then
    _einfuegen()
    _kopieren()
    ElseIf _GUICtrlToolbar_IsButtonPressed($ToolBar1, $idSave) then
    _speichern()

    [/autoit][autoit]


    Func _einfuegen()
    ;MsgBox(4096, "Information", "Einfügen")
    Send("^v")
    sleep(200)
    EndFunc

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

    Func _kopieren()
    ;MsgBox(4096, "Information", "Kopieren")
    Send("^c")
    sleep(200)
    EndFunc

    [/autoit]

    Setze ich in den "Einfügen"-Button die Funktion " _kopieren()" ein, dann beendet sich das Programm übrigens auch! Es muss also was mit dem Button an sich zu tun haben.

    [autoit]


    _GUICtrlToolbar_AddButton($ToolBar1, $idPaste, $STD_PASTE)

    [/autoit]

    Bringt der Button irgendeine Funktion bereits mit oder funktioniert er nur mit einer bestimmten Anweisungsart?

    Dank und Gruß
    Thomas

    Einmal editiert, zuletzt von TJF (14. Januar 2010 um 13:56)

  • Auch das hier führt zum Beenden (als müßte man hier ein "Stop" setzen...):

    [autoit]


    Func _einfuegen()
    ;MsgBox(4096, "Information", "Einfügen")
    ;Send("^v")
    ;sleep(200)

    [/autoit]

    Korrekt ausgeführt wird das hier:

    [autoit]


    Func _einfuegen()
    MsgBox(4096, "Information", "Einfügen")
    ;Send("^v")
    ;sleep(200)

    [/autoit]

    Die anderen Grafik-Buttons arbeiten einwandfrei mit ihren Funktionen!

  • Aus den paar Codesnipseln kann man wenig sagen. Würde einfach mal sagen das keine Schleife hast:

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    Do
    $msg = GUIGetMsg()

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

    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.