Klappt leider nicht. Bei allen 3 Ziffern.
#IfWinActive, Nachrichten ; fensterbezogene Hotkeys einschalten
SetTitleMatchMode, 2
!j::
Send, Test
Return
#IfWinActive ; fensterbezogene Hotkeys ausschalten
Befehle nur in bestimmten Programmen bzw. Fenster ausführen
Moderator: jNizM
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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.
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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?
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?
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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
SetTitleMatchMode, 2
#IfWinActive, System, ; fensterbezogene Hotkeys einschalten
DetectHiddenWindows, on
WinActivate, Nachrichten
!ö::
Send, Test
Return
#IfWinActive ; fensterbezogene Hotkeys ausschalten
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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'?
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'?
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
Guten Abend!
Dort steht:
System
ahk_class ThunderRT6MDIForm
ahk_exe SystemWin.exe
Dort steht:
System
ahk_class ThunderRT6MDIForm
ahk_exe SystemWin.exe
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
Moin,
ich habe Deine Antwort und auch eine Unstimmigkeit in Deinem letzten Skript übersehen.
Hier steht als Fenstertitel 'System', wie auch in Deiner letzten Antwort.
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:brauchst Du nicht, wenn Du das Fenster sehen kannst. Es ist dann eher schädlich.
ich habe Deine Antwort und auch eine Unstimmigkeit in Deinem letzten Skript übersehen.
Code: Select all
#IfWinActive, System, ; fensterbezogene Hotkeys einschalten
Code: Select all
WinActivate, Nachrichten
Und noch etwas:
Code: Select all
DetectHiddenWindows, on
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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?
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?
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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?
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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.
Und als Hosting kann ich das Skript nicht laufen lassen? Die Befehle sehen doch dort anders aus.
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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.
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
Moin,
die Fehlermeldung kann ich nicht nachvollziehen. Hier mal beide Alternativen:
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.
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
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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.
Ich werde die nächsten Tage testen und mich bei Fragen wieder melden. Vielen Dank.
Re: Befehle nur in bestimmten Programmen bzw. Fenster ausführen
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
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
Who is online
Users browsing this forum: No registered users and 22 guests