Zwischenablage in 2 Variablen speichern und mit Hotkey wieder ausgeben

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

PWJ
Posts: 6
Joined: 31 Jan 2014, 06:57

Zwischenablage in 2 Variablen speichern und mit Hotkey wieder ausgeben

13 Apr 2016, 09:01

Hallo,

ich versuche ein Skript zu erstellen, welches mir ermöglicht einen markierten Bereich in einer Variable zu speichern, um den Wert der Variable anschließend wieder in einem Textbaustein auszugeben.

Mit Alt+1 bzw. Alt+2 möchte ich jeweils den Wert für die Variable speichern. Mit Alt+3 sollen beide Variablen zusammen in einem Textbaustein wieder ausgegeben werden.

Eigentlich völlig simpel, aber entweder verstehe ich die Funktionsweise nicht richtig oder mache einen Denkfehler.
Bislang hab ich folgendes zusammengebastelt.

Code: Select all

!1::
	Clipboard := ""
	Send, ^c
	SIM := Clipboard
Return

!2::
	Clipboard := ""
	Send, ^c
	RN := Clipboard
Return

!3::
	Send % "SIM " SIM " mit RN " RN "."
Return
Diese Zeile erscheint mir eigentlich überflüssig. Habe sie allerdings aus ähnlichen Skripten übernommen und frage mich, ob sie notwendig ist.

Code: Select all

Clipboard := ""
Leider funktioniert es so noch nicht ganz. Wenn ich das Skript im Editor teste, klappt es meistens beim ersten Mal. Bei weiteren Versuchen fehlt dann allerdings hin und wieder einer der beiden Werte in dem Textbaustein.
Versuche ich etwas aus dem Browser darüber zu kopieren wird scheinbar überhaupt nichts in Variablen gespeichert.

Wäre super wenn mir jemand auf die Sprünge helfen kann.

Gruß
pwj
wolf_II
Posts: 2688
Joined: 08 Feb 2015, 20:55

Re: Zwischenablage in 2 Variablen speichern und mit Hotkey wieder ausgeben

13 Apr 2016, 10:47

Versuch mal dies:

Code: Select all

!1:: SIM := get_Highlight()
!2:: RN := get_Highlight()
!3:: Send % "SIM " SIM " mit RN " RN "."


;-------------------------------------------------------------------------------
get_Highlight() { ; get highlighted text
;-------------------------------------------------------------------------------
    ClipStore := Clipboard              ; store current content
    Clipboard =                         ; empty
    SendInput, ^c                       ; copy highlighted text
    ClipWait                            ; wait for change
    Result := Clipboard                 ; store highlighted text
    Clipboard := ClipStore              ; restore clipboard's previous content
    Return, Result
}
Ich hoffe, das hilft Dir weiter.
PWJ
Posts: 6
Joined: 31 Jan 2014, 06:57

Re: Zwischenablage in 2 Variablen speichern und mit Hotkey wieder ausgeben

13 Apr 2016, 11:19

Vielen Dank! Das funktioniert genau so wie ich es mir vorgestellt habe.

Bei der Gelegenheit habe ich auch herausgefunden warum es bei mir nur teilweise funktioniert hat.
Es lag scheinbar daran, dass ich den Befehl ClipWait nicht verwendet habe.

Gruß
pwj
wolf_II
Posts: 2688
Joined: 08 Feb 2015, 20:55

Re: Zwischenablage in 2 Variablen speichern und mit Hotkey wieder ausgeben

13 Apr 2016, 11:26

PWJ wrote:Es lag scheinbar daran, dass ich den Befehl ClipWait nicht verwendet habe.
Richtig! Weiterhin viel Spaß noch. :D

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 20 guests