Befehle nur in bestimmten Programmen bzw. Fenster ausführen

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

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

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

05 Feb 2017, 11:35

Klappt leider nicht. Bei allen 3 Ziffern.

#IfWinActive, Nachrichten ; fensterbezogene Hotkeys einschalten
SetTitleMatchMode, 2
!j::
Send, Test
Return
#IfWinActive ; fensterbezogene Hotkeys ausschalten
just me
Posts: 9508
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

05 Feb 2017, 12:15

Stell mal sicherheitshalber SetTitleMatchMode an den Anfang. Wenn es dann immer noch nicht klappt, ist entweder der Titel falsch oder das Fenster ist nicht aktiv.
WPLPHSS
Posts: 172
Joined: 04 Feb 2017, 05:34

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

05 Feb 2017, 12:45

Du hast Recht.
Beim Programmname wird das Skript ausgeführt. Das Fenster "Nachrichten" im Programm wird nicht erkannt, obwohl ich dort Text eingeben kann. Muss dann das Fenster in den Vordergrund geholt werden?
WPLPHSS
Posts: 172
Joined: 04 Feb 2017, 05:34

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

05 Feb 2017, 13:29

Das Skript läuft im Programm, aber nicht im Fenster Nachrichten des Programms, obwohl das Fenster Nachrichten aktiviert wurde


SetTitleMatchMode, 2
#IfWinActive, System, ; fensterbezogene Hotkeys einschalten
DetectHiddenWindows, on
WinActivate, Nachrichten
!ö::
Send, Test
Return
#IfWinActive ; fensterbezogene Hotkeys ausschalten
just me
Posts: 9508
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

06 Feb 2017, 04:22

Moin,

damit Du das Fenster in den Vordergrund holen kannst, muss AHK es erst einmal identifizieren/finden können. Starte doch mal Dein Programm und Dein Skript. Bei Rechtsklick auf das Trayicon des Skripts öffnet sich ein Menü. Darin findest Du den Eintrag 'WIndow Spy'. Starte das und aktiviere Dein Wunschfenster. Was steht oben unter 'Windows Title, Class and Process'?
WPLPHSS
Posts: 172
Joined: 04 Feb 2017, 05:34

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

06 Feb 2017, 16:04

Guten Abend!

Dort steht:

System
ahk_class ThunderRT6MDIForm
ahk_exe SystemWin.exe
just me
Posts: 9508
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

08 Feb 2017, 05:28

Moin,

ich habe Deine Antwort und auch eine Unstimmigkeit in Deinem letzten Skript übersehen.

Code: Select all

#IfWinActive, System, ; fensterbezogene Hotkeys einschalten
Hier steht als Fenstertitel 'System', wie auch in Deiner letzten Antwort.

Code: Select all

WinActivate, Nachrichten
Hier steht als Fenstertitel 'Nachrichten'. Wenn das so stimmt und dieses Fenster schon aktiv ist, kann das Fenster 'System' nicht gleichzeitig aktiv sein und der Hotkey wird nicht eingeschaltet. Wenn es nicht stimmt, bringt diese Anweisung vielleicht etwas durcheinander.

Und noch etwas:

Code: Select all

DetectHiddenWindows, on
brauchst Du nicht, wenn Du das Fenster sehen kannst. Es ist dann eher schädlich.
WPLPHSS
Posts: 172
Joined: 04 Feb 2017, 05:34

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

08 Feb 2017, 07:59

Hallo just me!

Das Fenster Nachrichten lässt sich im Programm System aufrufen. Windows Spy sagt mir bei jedem Fenster (Nachrichten etc), welches im Programm System aufgerufen wird, die bereits bekannte Meldung:

System
ahk_class ThunderRT6MDIForm
ahk_exe SystemWin.exe

Kann AHK das Fenster Nachrichten etc nicht aktivieren?

Oder kann das Skript auch als Hosting mit einer automatischen auslösende Abkürzung (z. B. ,jj) umgestaltet werden? Wie würde es dann bei bei der Abkürzung ::,jj:: aussehen?
just me
Posts: 9508
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

08 Feb 2017, 11:42

Wenn Du bei laufendem WIndow Spy / Active Window Info in das 'Nachrichten'-Fenster klickst und sich die angezeigten Werte für das Fenster nicht ändern, sieht es mau aus. Wer Deine Anwendung nicht hat, kann auch kaum beurteilen, woran das liegen könnte. Funktioniert der Hotkey für sich allein, wenn Du #IfWinActive und WinActivate weglässt?
WPLPHSS
Posts: 172
Joined: 04 Feb 2017, 05:34

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

08 Feb 2017, 14:28

Es erscheint eine Fehlermeldung bzgl. der fehlerhaften Zeile, wenn ich active und activate aus dem Skript entferne. Ich kann es nicht ändern, wenn die Fenster die gleichen Werte wie das Programmfenster haben. Ist vom Programmierer vermutlich nicht so gewollt gewesen. Ich sehe jetzt auch ein, warum es klappt. Schade eigentlich. Ich hätte meine Hotkeys im Programm selber generieren können.

Und als Hosting kann ich das Skript nicht laufen lassen? Die Befehle sehen doch dort anders aus.
WPLPHSS
Posts: 172
Joined: 04 Feb 2017, 05:34

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

08 Feb 2017, 16:59

Und noch eine weitere Frage: Kann ich mehrere Skripte in 1 AHK-Datei erstellen. (wenn ja, wie werden die Skripe von einer getrennt?) Wenn ich für jedes Skript eine extra Datei anlegen muss, wird es bei einem Autostart von vielen Dateien in der Systray sehr unübersichtlich.
just me
Posts: 9508
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

09 Feb 2017, 02:31

Moin,

die Fehlermeldung kann ich nicht nachvollziehen. Hier mal beide Alternativen:

Code: Select all

#NoEnv
SendMode, Input
Return

; Hotkey Alt+j
!j::
Send, Hotkey
Return

; Hotstring ,jj
:*:,jj:: ; * = es wird kein 'Endungszeichen' benötigt
Send, Hotstring
Return
Zum Thema 'mehrere Skripte' kommt es darauf an, was Du unter einem Skript verstehst. Mehrere Hotkeys bzw. Hotstrings sind immer möglich. Bei aufwändigeren Skripten kann es sein, dass sich die unterschiedlichen Aktionen gegenseitig behindern oder das Skript einfach nur sehr unübersichtlich wird. Dann halte ich es für besser, die Aktionen auf mehrere Skripte zu verteilen.
WPLPHSS
Posts: 172
Joined: 04 Feb 2017, 05:34

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

09 Feb 2017, 07:41

Das funktioniert einwandfrei. Es wird biem Hosting sogar -wie ich es wollte- automatisch aufgelöst. :-)

Ich werde die nächsten Tage testen und mich bei Fragen wieder melden. Vielen Dank.
derPat19
Posts: 4
Joined: 12 Oct 2019, 06:10

Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen

12 Oct 2019, 06:15

hallo

ich habe ein ganz einfaches skript:

^t::
InputBox, name,Bitte Dateinamen auswählen
FileAppend,,%name%.txt
Run %name%.txt

ich möchte eine txt datei in meinen ordner (den ich gerade offen habe) erstellen...

aber wie kann ich das aktuelle fenster ansprechen?

mfg

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 22 guests