Send-Kommando beschleunigen ?

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Werniman
Posts: 3
Joined: 01 Jul 2017, 14:13

Send-Kommando beschleunigen ?

01 Jul 2017, 15:29

Hallo!
Ich bin noch blutiger Anfänger,was AutoHotkey angeht. Genauergesagt nutze ich es bislang ausschließlich beruflich und da bisher auch nur zum automatischen Ersetzen von bestimmten Abkürzungen durch ihre ausgeschriebene Form.Nun möchte ich die ganze Sache etwas ausweiten, um bestimmte Arbeitsschritte weiter zu automatisieren.
Wir müssen da in einem Ticketsystem an einer Stelle in der ersten Zeile einen vorgegebenen Textbaustein eingeben, dann den Inhalt des Clipboard reinkopieren und dann einen weiteren Textbaustein ergänzen. Das ganze wird dann mit Strg+S gespeichert. Bislang habe ich die beiden zusätzlichen Zeilen mit jeweils einer eigenen Abkürzung eingegeben,die dann von AutoHotkey automatisch durch den Volltext ersetzt wurden. Den Inhalt des Clipboards habe ich dann per Strg+V von Hand eingegeben. Der Ablauf sah also bislang so aus
TVK [Return]
[Strg+V]
WWNR [Return)
Strg+S (um den Eintrag zu speichern).

Mit AutoHotkey habe ich jetzt ein simples Script gebastelt, welches so aussieht:

Code: Select all

::Testscript::
  Send Tätigkeiten der Vorklärung{enter}
  Send ^v{enter}
  Send Weitergabe an WNR{enter}
  Send ^s
Return
Das Script tut auch genau das was es soll,allerdings störe ich mich ein wenig an der Geschwindigkeit, mit der die beiden Textbausteine "reinscrollen",d.h. erscheinen. Bei derart kurzen Textbausteinen ist es sicher zu vernachlässigen, aber vielleicht möchte das Script ja auch mal für längere Textbausteine nutzen. Meine Frage daher: Gibts eine Möglichkeit, die Send-Funktion irgendwie zu beschleunigen ?
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Send-Kommando beschleunigen ?

01 Jul 2017, 15:52

Man kann über SetKeyDelay kontrollieren wie lange eine einzelner Tastendruck gehalten werden soll.
Zudem kann man über SetBatchlines kontrollieren wie schnell ein Script ausgeführt werden soll.
Recommends AHK Studio
gregster
Posts: 9002
Joined: 30 Sep 2013, 06:48

Re: Send-Kommando beschleunigen ?

01 Jul 2017, 16:31

Bei längeren Texten ist es wesentlich schneller, Text über das Clipboard einzufügen (die Technik kennst du ja im Prinzip schon)

Da du das Clipboard ja selber befüllt hast und dessen Inhalt auch zwischendurch einfügen willst, solltest du diesen Clipboard-Inhalt zwischenzeitlich in einer anderen Variable sichern und bei Bedarf (und ggf. am Ende) wieder herstellen (für Benutzer des Skripts ist es natürlich grundsätzlich vorteilhaft, wenn sie nach einer Hotkey- oder Hotstring-Aktion im Clipboard genau die Daten wiederfinden, die sie dort vermuten - auch wenn du es nur selber bist). Also könntest du mal so was versuchen:

Code: Select all

::Testscript::
ClipSaved := Clipboard				; Clipboard ist eine interne AHK-Variable, vgl. auch ClipboardAll in den Docs
Clipboard := "Tätigkeiten der Vorklärung"
Send ^v{enter}

Clipboard := ClipSaved
Send ^v{enter}

Clipboard := "Weitergabe an WNR"
Send ^v{enter}
Clipboard := ClipSaved
Send ^s
Return
Edit: zweimal = durch := ersetzt
Last edited by gregster on 02 Jul 2017, 08:14, edited 1 time in total.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Send-Kommando beschleunigen ?

01 Jul 2017, 17:19

ControlSetText pasted ebenfalls recht fix :)
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Send-Kommando beschleunigen ?

02 Jul 2017, 01:45

Moin,

bei langen Texten ist gregsters Vorschlag wahrscheinlich der schnellste. Bei 'langsamen' Anwendungen kann das aber so schnell sein, dass Du nach der Send Anweisung ein Sleep einfügen musst, weil AHK sonst das Clipboard neu befüllt, bevor die Anwendung es eingefügt hat.

Eine weitere Möglichkeit für eine Beschleunigung ist:

Code: Select all

; ===== Beginn des Skripts / des "Auto-Ausführungsbereichs"
#NoEnv
SendMode, Input
Return
; ===== Ende des  "Auto-Ausführungsbereichs"
::Testscript::
  Send Tätigkeiten der Vorklärung{enter}
  Send ^v{enter}
  Send Weitergabe an WNR{enter}
  Send ^s
Return
bzw.

Code: Select all

::Testscript::
  SendInput Tätigkeiten der Vorklärung{enter}
  SendInput ^v{enter}
  SendInput Weitergabe an WNR{enter}
  SendInput ^s
Return
Quellen: Auto-Ausführungsbereich, SendMode, SendInput
Werniman
Posts: 3
Joined: 01 Jul 2017, 14:13

Re: Send-Kommando beschleunigen ?

02 Jul 2017, 03:35

Vielen Dank für alle Antworten. Die Scripts funktionieren prima.Hab nur noch die Anführungszeichen aus dem Script von gregster entfernen müssen,weil diese beim Ausführen sonst mit eingetragen würden.
gregster
Posts: 9002
Joined: 30 Sep 2013, 06:48

Re: Send-Kommando beschleunigen ?

02 Jul 2017, 08:11

Werniman wrote:Hab nur noch die Anführungszeichen aus dem Script von gregster entfernen müssen,weil diese beim Ausführen sonst mit eingetragen würden.
Oh ja, hoppla, eigentlich wollte ich da := schreiben, und nicht = ... sorry! (Ich editier es mal)

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 93 guests