Lange Textbausteine schnell erscheinen lassen

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

GT_Andre
Posts: 3
Joined: 03 Jul 2020, 05:35

Lange Textbausteine schnell erscheinen lassen

Post by GT_Andre » 03 Jul 2020, 05:42

Hallo,

ich benutzte AHK für viele vorbelegte lange Textbausteine. Gibt es eine Möglichkeit die Textbausteine nicht Zeichen-für-Zeichen wie beim schreiben einfügen zu lassen, sondern auf einmal sofort?

meine Textbausteine beginnen mit einer auszuführenden Tastenkombination z.B.

::tb1:: herzlichen Dank für Ihr Interesse an xyz. Ihrem Wunsch entsprechend erhalten Sie heute.

Würde mich freuen wenn mir einer hilft, weil viel textbausteine sind über 10 zeilen lang und warte dann mal schnell auch 10-15 Sekunden bis dieser komplett erschienen ist :-(

just me
Posts: 7284
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Lange Textbausteine schnell erscheinen lassen

Post by just me » 03 Jul 2020, 06:38

Moin,

mir fallen da auf die Schnelle 2 Optionen ein:
  1. Code: Select all

    #Hotstring SI ;  -> SendMode Input
    über die betroffenen Hotstrings stellen.
  2. Das Clipboard benutzen, z.B.

    Code: Select all

    ::tb1::
    Clipboard := "herzlichen Dank für Ihr Interesse an xyz. Ihrem Wunsch entsprechend erhalten Sie heute."
    Send, ^c

User avatar
haichen
Posts: 533
Joined: 09 Feb 2014, 08:24

Re: Lange Textbausteine schnell erscheinen lassen

Post by haichen » 03 Jul 2020, 06:42

Ich habe so etwas mal für meine Frau gemacht:

Code: Select all

tb1=
(
herzlichen Dank für Ihr Interesse an xyz. Ihrem Wunsch entsprechend erhalten Sie heute.
)

tb2=
(
Der Artikel ist am Lager unseres Lieferanten zwar vorrätig, das Lager befindet sich in XXX in Frankreich. Dort arbeitet man zur Zeit wegen der Coronakrise nur in allerkleinster Notbesetzung. Wir können zum jetzigen Zeitpunkt nicht sagen, wann der Artikel bei unserem deutschen Lieferanten bzw. bei uns eintreffen wird.

Wir bedauern, ihnen keine genauere Auskunft geben zu können und hoffen auf Ihr Verständnis.

Mit freundlichem Gruß
)

:x:tb1:: f(tb1)
:x:tb2:: f(tb2)

return

f(str){
	ClipSaved := ClipboardAll   
	clipboard:=str
	SendInput, ^v
	sleep, 600
	Clipboard := ClipSaved   
	ClipSaved := ""
}
edit: Ab Autohotkey [v1.1.28+]

GT_Andre
Posts: 3
Joined: 03 Jul 2020, 05:35

Re: Lange Textbausteine schnell erscheinen lassen

Post by GT_Andre » 03 Jul 2020, 07:14

vielen dank für die schnellen rückmeldungen.
am einfachsten erscheinte mir jetzt die Variante mit Clipboard und wenn ich dann noch Send, ^c dazu nehme, brauche ich nicht noch extra einfügen.

Allerdings funktioniert dies nicht, wenn im text noch z.B. Zeilenwechsel einbunden sind, wie z.B.

::tb1::
Clipboard := "Sehr geehrte Damen und Herren, {Return 2} herzlichen Dank für Ihr Interesse an xyz. Ihrem Wunsch entsprechend erhalten Sie heute."
Send, ^c
Send, ^v

die anderen Variante mit Toggle line, sagt mir leider nichts. ich habe bisher nur diversen Tastenkombinationen gearbeitet und diese über den txt-Editor normal eingeben. Was genau hat es bitte auf sich mit toggle Line numbers?

just me
Posts: 7284
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Lange Textbausteine schnell erscheinen lassen

Post by just me » 03 Jul 2020, 07:36

Hallo,

mein obiges

Code: Select all

Send, ^c
sollte natürlich ein

Code: Select all

Send, ^v
sein. :facepalm:
Wenn Du Send, ^c ausführst, nachdem Du das Clipboard versorgt hast, kann dies das Clipboard gleich wieder überschreiben.

User avatar
haichen
Posts: 533
Joined: 09 Feb 2014, 08:24

Re: Lange Textbausteine schnell erscheinen lassen

Post by haichen » 03 Jul 2020, 08:35

Was genau hat es bitte auf sich mit toggle Line numbers?
Klick mal drauf.

User avatar
Scr1pter
Posts: 1205
Joined: 06 Aug 2017, 08:21
Location: Germany

Re: Lange Textbausteine schnell erscheinen lassen

Post by Scr1pter » 03 Jul 2020, 08:55

Isn Bug, normalerweise erscheinen die Zeilennummern,
damit man z.B. sagen kann "Prüf mal Zeile 21".
Ist einfacher als Codezeilen zu kopieren und einzufügen.

Hat bisher immer funktioniert.

Grüße
Please use [code][/code] when posting code!
Keyboard: Logitech G15 FE - Mice: Logitech G9 FE, G502 FE, G602, Jelly Comb Touchpad - OS: Windows 10 Pro 64 Bit - AHK version: 1.1.32.00

User avatar
haichen
Posts: 533
Joined: 09 Feb 2014, 08:24

Re: Lange Textbausteine schnell erscheinen lassen

Post by haichen » 03 Jul 2020, 09:03

Bei mir funktioniert toggle Line numbers

gregster
Posts: 5119
Joined: 30 Sep 2013, 06:48

Re: Lange Textbausteine schnell erscheinen lassen

Post by gregster » 03 Jul 2020, 10:29

GT_Andre wrote:
03 Jul 2020, 07:14
Allerdings funktioniert dies nicht, wenn im text noch z.B. Zeilenwechsel einbunden sind, wie z.B.

::tb1::
Clipboard := "Sehr geehrte Damen und Herren, {Return 2} herzlichen Dank für Ihr Interesse an xyz. Ihrem Wunsch entsprechend erhalten Sie heute."
Send, ^c
Send, ^v
Du kannst Zeilenumbrüche hinzufügen mit newline/linefeed `n:

Code: Select all

Clipboard := "Sehr geehrte Damen und Herren,`n`nherzlichen Dank für Ihr Interesse an xyz. Ihrem Wunsch entsprechend erhalten Sie heute."

Guest

Re: Lange Textbausteine schnell erscheinen lassen

Post by Guest » 03 Jul 2020, 15:00

Super vielen Dank für die Unterstützung für mich als Anfänger, nicht so einfach. Jetzt wollte ich es mit der gefühlten einfachen varianten probieren

Habe jetzt 2 TB textbausteine erfasst und so im Editor eingefügt:

Code: Select all

::tb1::
Clipboard := "Sehr geehrte Damen und Herren,`n`n herzlichen Dank für Ihr Interesse an xyz.`n`nIhrem Wunsch
entsprechend erhalten Sie heute."
send, ^v
 
::tb2::
Clipboard := "heute erhalten Sie...`nViel Erfolg bei der Umstellung."
send, ^v
-------------------------------------------------
Bei Eingabe von tb1 kommt:

heute erhalten Sie...
Viel Erfolg bei der Umstellung. heute erhalten Sie...
Viel Erfolg bei der Umstellung.

---------------------------------------------------
Bei Eingabe von tb2 kommt:

heute erhalten Sie...
Viel Erfolg bei der Umstellung.


Irgendwie doch nicht so einfach wie vermutet. Vielleicht kann mir noch einer helfen, wie ich mit der obigen lösung quasi unzählige Textbausteine mit Zeichenfolgen generieren könnte.
Last edited by BoBo on 03 Jul 2020, 15:31, edited 1 time in total.
Reason: [code][/code]-tags hinzugefügt.

BoBo
Posts: 3752
Joined: 13 May 2014, 17:15

Re: Lange Textbausteine schnell erscheinen lassen

Post by BoBo » 03 Jul 2020, 15:33

Code: Select all

::tb1::
    ClipBoard = 
    (LTrim
    Sehr geehrte Damen und Herren,
    
    herzlichen Dank für Ihr Interesse an xyz.
    
    Ihrem Wunsch entsprechend erhalten Sie heute:
    )
    Send, ^v
    Return
 
::tb2::
    ClipBoard := "Heute erhalten Sie...`nViel Erfolg bei der Umstellung."
    Send, ^v
    Return

gregster
Posts: 5119
Joined: 30 Sep 2013, 06:48

Re: Lange Textbausteine schnell erscheinen lassen

Post by gregster » 03 Jul 2020, 17:05

Du musst deine Hotstringroutinen jeweils mit einem Return abschließen (da sie mehrzeilig sind), so wie BoBo es oben auch tut. Sonst wird bei Auslösen von tb1 der komplette nachfolgende Code ausgeführt, also auch der Code von tb2 (und weiterer Code, falls vorhanden) - bis ein abschließendes Return gefunden wird.
D. h. eine Hotstringroutine endet nicht zwangsläufig am Beginn der nächsten, sondern erst bei einem Return.

(PS: ggf., zumindest bei langen Textbausteinen, müsstest du noch mit Clipwait sicherstellen, dass das Clipboard wirklich befüllt worden ist (nachdem du es vorher gelehrt hast), bevor es gesendet wird:

Code: Select all

::tb1::
	Clipboard := ""
	Clipboard := "Sehr geehrte Damen und Herren,`n`n herzlichen Dank für Ihr Interesse an xyz.`n`nIhrem Wunsch entsprechend erhalten Sie heute."
	Clipwait
	send, ^v
return
)

just me
Posts: 7284
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Lange Textbausteine schnell erscheinen lassen

Post by just me » 04 Jul 2020, 04:37

Moin @gregster,

ich glaube nicht, dass das Clipwait in diesem Fall erforderlich ist. Die Zugriffe auf das Clipboard erfolgenn vollständig unter Kontrolle des AHK-Skripts.

Anders sieht es in folgendem Fall aus:

Code: Select all

   Clipboard := ""
   Send, ^c
Hier kontrolliert AHK nur das Leeren des Clipboards. Die anschließende Send Anweisung sorgt nur für die Übergabe einer Tastatureingabe an ein anderes Programm. Für AHK war's das auch schon. Um das Clipboard muss sich das andere Programm kümmern. Weil das oft nur verzögert reagiert, ist genauso oft ClipWait erforderlich.

WPLPHSS
Posts: 112
Joined: 04 Feb 2017, 05:34

Re: Lange Textbausteine schnell erscheinen lassen

Post by WPLPHSS » 04 Jul 2020, 08:27

Gelöscht
Last edited by WPLPHSS on 04 Jul 2020, 12:37, edited 1 time in total.

GT_Andre
Posts: 3
Joined: 03 Jul 2020, 05:35

Re: Lange Textbausteine schnell erscheinen lassen

Post by GT_Andre » 04 Jul 2020, 08:54

Vielen Dank für die Hilfe. Nun klappt es so wie von mir gewünscht :-)
jetzt steht ein vielzahl von textbausteinen nichts mehr im Weg.

gregster
Posts: 5119
Joined: 30 Sep 2013, 06:48

Re: Lange Textbausteine schnell erscheinen lassen

Post by gregster » 04 Jul 2020, 11:29

Danke für den Hinweis, @just me.

Post Reply

Return to “Ich brauche Hilfe”