Copy & Paste mit Autoit mehrmals ausführen

  • Hallo,
    ich habe folgendes Script versucht:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <misc.au3>

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

    HotKeySet("{q}", "Schreiben2")
    HotKeySet("{w}", "Schreiben")

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

    Func Schreiben()
    $c = "text"
    ClipPut($c)
    Sleep(100)
    Send("^v")
    EndFunc

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

    Func Schreiben2()
    $v = "text2"
    ClipPut($v)
    Sleep(100)
    Send("^v")
    EndFunc

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

    While 1
    Sleep(100)
    Wend

    [/autoit]

    Aber irgendwie will es nicht klappen..
    Es soll einfach nur zuerst "text" am Curser ausspucken, und dann wenn ich die 2te Taste drücke "text2" ..
    Irgendwie sagt es aber nichts ._.

  • Also bei mir gehts. :D
    Ich habe einfach das Programm gestartet, den Dialog "Ausführen" (Win+r) gestartet und "q" gedrückt.

    Es wurde sofort der Text eingefügt... Komisch.
    Vllt. hast du nicht in den Texteditor geklickt? Ich versteh das sonst nicht. ?(

    Ach so: vielleicht solltest du auch was zum Beenden hinzufügen?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <misc.au3>

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

    HotKeySet("{q}", "Schreiben2")
    HotKeySet("{w}", "Schreiben")
    HotKeySet("{Esc}", "_Exit")

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

    Func Schreiben()
    $c = "text"
    ClipPut($c)
    Sleep(100)
    Send("^v")
    EndFunc

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

    Func Schreiben2()
    $v = "text2"
    ClipPut($v)
    Sleep(100)
    Send("^v")
    EndFunc

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

    Func _Exit ()
    Exit
    EndFunc

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

    While 1
    Sleep(100)
    Wend

    [/autoit]

    MfG Xenon

    Einmal editiert, zuletzt von Xenon (13. Juni 2013 um 23:08)

  • Es kann sein das einige Editoren da nicht mitmachen, also würde ich nicht CTRL+C / CTRL+V senden.
    Eigentlich würde ich das niemals machen, stattdessen kann man

    [autoit]


    ClipPut($var); <--- Schreibt in den Zwischenspeicher den wir als "STRG+C / STRG+V" kennen.
    $var = ClipGet(); <--- Liest den Zwischenspeicher aus.

    [/autoit]

    Den Befehl um in den Zwischenspeicher zu schreiben hast du ja benutzt. Also schreib lieber:

    [autoit]


    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <misc.au3>

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

    HotKeySet("{q}", "Schreiben2")
    HotKeySet("{w}", "Schreiben")

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

    Func Schreiben()
    $c = "text"
    ClipPut($c)
    Sleep(100)
    Send(ClipGet())
    EndFunc

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

    Func Schreiben2()
    $v = "text2"
    ClipPut($v)
    Sleep(100)
    Send(ClipGet())
    EndFunc

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

    While 1
    Sleep(100)
    Wend

    [/autoit]


    Das wäre aber langsamer als es direkt von der Variable zu schreiben, nicht merklich aber unschön.

    Außerdem, warum includest du:

    [autoit]


    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>

    [/autoit]


    Poste beim nächsten Mal bitte dein gesamtes Script dann können wir das mit dem STRG+V auf bestimmte Programme eingrenzen ;)

  • Bei mir passiert es, dass es beim ersten Tastendruck nicht klappt.. dann warte ich 2-3 Sekunden und starte die Funktion nochmal. Dann gehts.
    Ich versteh nur nicht warum es eine Verzögerung gibt.