ich möchte von einem Fenster zum nächsten wechseln. Bisher mache ich das so: send, {ALTDOWN}{TAB}{ALTUP} ;
das ist aber nicht sehr zuverlässig.
Vermutlich geht es auch mit WinExist. Aber ich habe die Syntax nicht verstanden. Außerdem braucht man noch den Titel des Fensters. Mit dem Active Window tool sehe ich schon was, weiß aber nicht was da angeben soll.
ZB:
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
AutoHotkey Community - Post a new topic - Mozilla Firefox
ahk_class MozillaWindowClass
Mir würde helfen, wenn ich ein konkretes Beispiel bekommen könnte um in ein bestimmtes Fenster wechseln.
So zeigt mir Active Window ein solches Fenster an:
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Z:\Musik\select
ahk_class CabinetWClass
Danke!
Fenster wechseln WinExist
Moderator: jNizM
Re: Fenster wechseln WinExist
mache ich was falsch? Frage anders formulieren? Hat jemand einen Tipp wie ich hier weiter komme?
Danke!
Danke!
Re: Fenster wechseln WinExist
Code: Select all
F1::
WinActivate, ahk_class MozillaWindowClass ; Firefox in den Vordergrund bringen
return
Grüße
Please use [code][/code] when posting code!
Keyboard: Logitech G PRO - Mouse: Logitech G502 LS - OS: Windows 10 Pro 64 Bit - AHK version: 1.1.33.09
Keyboard: Logitech G PRO - Mouse: Logitech G502 LS - OS: Windows 10 Pro 64 Bit - AHK version: 1.1.33.09
Re: Fenster wechseln WinExist
WinGet() (2.Beispiel, bzgl. Ermittlung von Details aller Fenster). Array erstellen zum Speichern aller 'Kennungen' (z.B. IDs). Mittels Hotkey(s) das Array der Reihe nach abarbeiten um das jeweilige Fenster mit WinActivate zu aktivieren. Ein Schnellschuss
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
Re: Fenster wechseln WinExist
danke, probiere ich aus
Re: Fenster wechseln WinExist
Hat funktioniert. Da stoße ich auf das nächste Problem: Der Cursor steht jetzt irgendwo auf dem Bildschirm, muß aber jetzt ins aktivierte Fenster, um dort was auszulösen. Ich hatte gehofft, dass durch die Fenster-Aktivierung auch der Cursor folgt. Kann mir hier noch jemand helfen? Danke!
Re: Fenster wechseln WinExist
Würdest du das "hat funktioniert" mal zeigen? Denke es sollte kein größeres Problem sein den Cursor fensterabhängig zu plazieren.
Hier übrigens noch ein artverwandter Thread mit ein paar interssanten facts: https://www.autohotkey.com/boards/viewtopic.php?f=76&t=69715
Hier übrigens noch ein artverwandter Thread mit ein paar interssanten facts: https://www.autohotkey.com/boards/viewtopic.php?f=76&t=69715
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
Re: Fenster wechseln WinExist
F1::
WinActivate, ahk_class Afx:0040000000010003:00000006:00270887
return
der Cursor steht dann aber immer noch im linken Fenster. Innerhalb eines Fensters, also dort wo der Cursor steht, weiß ich wie man die Maus bewegt:
mouseClick, left, 344, 108 ; Feld Dateiname
Aber dazu muss ich erstmal in das Fenster kommen.
Re: Fenster wechseln WinExist
Moin,
welches 'Fenster' genau hat denn die Klasse Afx:00400000...?
Das Mp3tag Fenster sollte man ja auch über den Titel und die Exe-Datei identifizieren können: WinActivate, Mp3tag ahk_exe Mp3tag.exe (oder ähnlich). Wenn es tatsächlich aktiviert wird, sollte es auch den Eingabefokus bekommen. Hilfreich wäre es, wenn Du das Control auf der rechten Seite identifizieren könntest. Aus AHK-Sicht sieht das zunächst einmal wie ein ListView aus.
welches 'Fenster' genau hat denn die Klasse Afx:00400000...?
Das Mp3tag Fenster sollte man ja auch über den Titel und die Exe-Datei identifizieren können: WinActivate, Mp3tag ahk_exe Mp3tag.exe (oder ähnlich). Wenn es tatsächlich aktiviert wird, sollte es auch den Eingabefokus bekommen. Hilfreich wäre es, wenn Du das Control auf der rechten Seite identifizieren könntest. Aus AHK-Sicht sieht das zunächst einmal wie ein ListView aus.
Re: Fenster wechseln WinExist
Hi,
folgendes Script funktioniert bei mir:
Wichtig ist wohl das Send, {Down}, weil das Listview-Fenster wohl "aktiv" ist, aber noch nicht der Eintrag. Überprüfen kann man das, wenn man mit den Sleep's die Änderungen in dem Fenster beobachtet. Die Sleep's können dann auch entfernt werden. Dass es funktioniert, kann ich dadurchg überprüfen, indem ich nach dem Script die F2-Taste drücke und damit den Listeneintrag editieren kann.
folgendes Script funktioniert bei mir:
Code: Select all
IfWinExist, ahk_exe Mp3tag.exe
{
Sleep, 500
WinActivate, Mp3tag
Sleep, 500
ControlFocus, SysListView321, Mp3tag
Sleep, 500
Send, {Down}
}
Herzliche Grüße aus dem Rheinland
Lucky Joe
Lucky Joe
Re: Fenster wechseln WinExist
MP3Tag kann aber mehr, und dazu gehört die Verarbeitung per Scripting und der Start einzelner Dateien/Ordner über die Befehlszeile. Wenn sich so das Turnen durch Fenster weitgehenst vermeiden ließe, wäre das (m)eine bevorzugte Option.
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
Re: Fenster wechseln WinExist
danke für die Info's. Das mit dem MP3TAG ist nur ein Beispiel, ich möchte gerne gezielt Fenster wechseln können, für Automatisierungen kommt das häufig bei mir vor. Ich kann noch nicht so recht mit den Informationen aus dem Tool Active Window Info umgehen, dort hatte ich diese kryptische Info her. So sieht die ganze Information aus:
Re: Fenster wechseln WinExist
Hi,
lies dir doch mal die Hilfe zu WinActivate und anderen Themen zu "Fenster" durch. Erklärt sich doch recht einfach. Oder stell deine Frage etwas konkreter.
lies dir doch mal die Hilfe zu WinActivate und anderen Themen zu "Fenster" durch. Erklärt sich doch recht einfach. Oder stell deine Frage etwas konkreter.
Herzliche Grüße aus dem Rheinland
Lucky Joe
Lucky Joe
Re: Fenster wechseln WinExist
Und vergesst nicht, dass WinWaitActive auch hilfreich sein kann
Außerdem schließe ich mich BNOLIs (indirekten) Vorschlag an,
dass man ruhig mal prüfen sollte, ob man auch auf Script-ebene arbeiten kann.
Das hat jetzt auch nichts direkt mit diesem Beispiel zu tun.
Reine Makros, die auf die Benutzeroberfläche (BO) angewendet werden, neigen leider viel schneller zu Fehlern.
Speziell nach Software-Updates kann es oft zu Problemen kommen, wenn z.B. die BO verändert wurde.
Skripten ist (anfangs) schwieriger, aber das Ergebnis wird immer schneller und sicherer sein.
Grüße
Außerdem schließe ich mich BNOLIs (indirekten) Vorschlag an,
dass man ruhig mal prüfen sollte, ob man auch auf Script-ebene arbeiten kann.
Das hat jetzt auch nichts direkt mit diesem Beispiel zu tun.
Reine Makros, die auf die Benutzeroberfläche (BO) angewendet werden, neigen leider viel schneller zu Fehlern.
Speziell nach Software-Updates kann es oft zu Problemen kommen, wenn z.B. die BO verändert wurde.
Skripten ist (anfangs) schwieriger, aber das Ergebnis wird immer schneller und sicherer sein.
Grüße
Please use [code][/code] when posting code!
Keyboard: Logitech G PRO - Mouse: Logitech G502 LS - OS: Windows 10 Pro 64 Bit - AHK version: 1.1.33.09
Keyboard: Logitech G PRO - Mouse: Logitech G502 LS - OS: Windows 10 Pro 64 Bit - AHK version: 1.1.33.09
Re: Fenster wechseln WinExist
Habe bedauerlicherweise bisher keinen Hinweis gefunden, das MP3Tag das Scripten gänzlich über die Kommandozeile unterstützt. Scripten heisst hier "batch'ing" auf der Oberfläche, heisst, über diverse Menüfelder lassen sich Patterns einpflegen, welche dann (durch einen Tastendruck) die entsprechenden Konvertierungen ausführen. Also eine Semi-Automatik.
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
Re: Fenster wechseln WinExist
Moin,
hier ist ein Skript, das Dir die notwendigen Informationen liefern sollte. Du startest das Skript, bewegst die Maus über das interessante Fenster (wenn Du willst an die Stelle im Fenster, die Dich besonders interessiert) und drückst Strg+Shift+i.
Die daraufhin angezeigte MsgBox liefert dann folgende Informationen:
hier ist ein Skript, das Dir die notwendigen Informationen liefern sollte. Du startest das Skript, bewegst die Maus über das interessante Fenster (wenn Du willst an die Stelle im Fenster, die Dich besonders interessiert) und drückst Strg+Shift+i.
Die daraufhin angezeigte MsgBox liefert dann folgende Informationen:
- Mouse Position - die Koordinaten des Mauszeigers relativ zum Fenster
- Window Title - der Titel des Fensters
- Window Proc Name - der Name des Prozesses (der EXE), der das Fenster erstellt hat
- Window Class - der Name der Fensterklasse
- Control Class - der Name der Controlklasse
- Control ClassNN - die AHK-interne ClassNN
- Control Position - die Position des Controls innerhalb des Fensters und die Größe
Code: Select all
#NoEnv
CoordMode, Mouse, Window ; just for clarity, it's default
Return
^+i::
MouseGetPos, XM, YM, WinID, CtlID
WinGetTitle, WinTitle, ahk_id %WinID%
WinGetClass, WinClass, ahk_id %WinID%
WinGet, WinProcName, ProcessName, ahk_id %WinID%
ControlGetPos, XC, YC, WC, HC, %CtlID%, ahk_id %WinID%
ControlGet, HCTL, HWND, , %CtlID%, ahk_id %WinID%
WinGetClass, CtlClass, ahk_id %HCTL%
Msg := "Mouse Position:`n"
. "X = " . XM . " - Y = " . YM . "`n"
. "`n"
. "Window Title:`n"
. WinTitle . "`n"
. "Window Proc Name:`n"
. WinProcName . "`n"
. "Window Class:`n"
. WinClass . "`n"
. "`n"
. "Control Class:`n"
. CtlClass . "`n"
. "Control ClassNN:`n"
. CtlID . "`n"
. "Control Position:`n"
. "X: " . XC . " - Y: " . YC . " - W: " . WC . " - H: " . HC
MsgBox, 0, Currently under Mouse, %Msg%
Return
Esc::ExitApp
Who is online
Users browsing this forum: No registered users and 19 guests