Senden von Tasten in Abhängigkeit von bestimmten Fenstern

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

festigrat
Posts: 54
Joined: 02 Mar 2017, 06:58

Senden von Tasten in Abhängigkeit von bestimmten Fenstern

08 Apr 2019, 09:40

Liebe Leute,

ich arbeite mit einem Programm, bei dem es ein Programmfenster und ein Editorfenster gibt. Das Editorfenster ist aber nicht immer da. Das Programmfenster ist immer das aktive Fenster. Nun will ich mit der Taste w das Editorfenster aktivieren (nur wenn auch da ist) und es soll die Taste o gesendet werden.

Ist das Editorfenster aber nicht da, soll die Taste w normal funktionieren. Ich habe das folgendermaßen versucht, aber es klappt nicht.

Code: Select all

w::
IfWinExist, Editor
{
WinActivate, Editor
	send, o
}
IfWinNotExist, Editor
	send, w
return
Die Taste w funktioniert nicht mehr und mit ~w:: funktioniert es auch nicht, da hier ja w gesendet wird, wenn das Editorfenster da ist, was nicht passieren soll. Außerdem entsteht manchmal eine Schleife, weil ich nochmal w sende, was das Skript ja wieder startet.
Über einen Tipp würde ich mich sehr freuen! Viele Grüße.
gregster
Posts: 3249
Joined: 30 Sep 2013, 06:48

Re: Senden von Tasten in Abhängigkeit von bestimmten Fenstern

08 Apr 2019, 10:19

$ ist der korrekte Modifier, um eine Schleife zu verhindern, nicht ~: also $w::
Vgl. https://ahkde.github.io/docs/Hotkeys.htm#Symbols
just me
Posts: 6511
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Senden von Tasten in Abhängigkeit von bestimmten Fenstern

08 Apr 2019, 10:31

Code: Select all

#IfWinExist Editor ; oder woran auch immer man das Fenster eindeutig erkennen kann
w::
	WinActivate ; aktiviert das von #IfWinExist gefundene Fenster
	Send, o
Return
#IfWinExist
festigrat
Posts: 54
Joined: 02 Mar 2017, 06:58

Re: Senden von Tasten in Abhängigkeit von bestimmten Fenstern

08 Apr 2019, 10:40

Hallo gregster,
vielen Dank für die schnelle Antwort. Das scheint auf den ersten Blick perfekt damit zu funktionieren. Nochmals vielen Dank!
garry
Posts: 1885
Joined: 22 Dec 2013, 12:50

Re: Senden von Tasten in Abhängigkeit von bestimmten Fenstern

08 Apr 2019, 10:45

oder Beispiel mit Groupadd

Code: Select all

;- send w zum Notepad (Editor)
;- send o zu  Notepad++
;- ( oder send Funktion umkehren )

SetTitleMatchMode, 2
;GroupAdd, myPr, Mozilla Firefox
;GroupAdd, myPr, Google Chrome
GroupAdd, myPr, Editor
;GroupAdd, myPr, Notepad++ 
#IfWinActive, ahk_group myPr
w::
send,{text}w
return
#IfWinActive
;-  
w::
send,{text}o
return
just me
Posts: 6511
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Senden von Tasten in Abhängigkeit von bestimmten Fenstern

09 Apr 2019, 02:09

Moin,

Du kannst das ja gern wie von gregster vorgeschlagen machen, für das Problem "Senden von Tasten in Abhängigkeit von bestimmten Fenstern" hat AHK aber die kontextabhängigen Hotkeys mit den zugehörigen Direktiven #IfWin[Not]Active / #IfWin[Not]Exist / #If.

Außerdem:
Bei typischen Ja/Nein-Entscheidungen gibt es genau einen If (Ja) und einen Else (Nein) Zweig. Das Innenleben Deiner Hotkeyroutine sollte deshalb so aussehen:

Code: Select all

IfWinExist, Editor
{
	WinActivate, Editor
	send, o
}
Else
	send, w
return
Die zweite Prüfung IfWinNotExist, Editor kannst Du Dir sparen.
gregster
Posts: 3249
Joined: 30 Sep 2013, 06:48

Re: Senden von Tasten in Abhängigkeit von bestimmten Fenstern

09 Apr 2019, 06:45

Also mein Code-Vorschlag war das offensichtlich nicht - ich habe lediglich einen schnellen Tipp zu den Modifiern gegeben, der auf Basis des existenten Codes eine Verbesserung der Funktion im Sinne der Zielvorstellung des Thread-Erstellers herbeiführen und die Verwechslung von ~ und $ aufklären sollte... :)
Es war nicht als erschöpfende Antwort gedacht ;)
just me
Posts: 6511
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Senden von Tasten in Abhängigkeit von bestimmten Fenstern

09 Apr 2019, 08:03

Hi gregster,

mein Hinweis war eher nicht an Dich gerichtet. ;)

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: Bekkart, Rolf99 and 26 guests