WinMove

Ändert die Position und/oder Größe eines bestimmten Fensters.

WinMove , X, Y
WinMove , FensterTitel, FensterText, X, Y, Breite, Höhe, AusnahmeTitel, AusnahmeText

Parameter

X, Y

Wenn einer der Parameter leer ist oder weggelassen wird, bleibt die Position in dieser Dimension unverändert. Andernfalls geben Sie die X- und Y-Koordinate (in Pixel) der oberen linken Ecke der neuen Position des Zielfensters an, was Ausdrücke sein können. Das obere linke Pixel des Bildschirms befindet sich auf 0, 0.

Wenn dies die einzigen Parameter sind, wird das Zuletzt Gefundene Fenster als Zielfenster verwendet.

FensterTitel, FensterText, AusnahmeTitel, AusnahmeText

Wenn jeder dieser Parameter leer ist oder weggelassen wird, wird das Zuletzt Gefundene Fenster verwendet. Andernfalls geben Sie für FensterTitel einen Fenstertitel oder andere Kriterien zur Identifizierung des Zielfensters und/oder für FensterText eine Teilzeichenkette aus einem Textelement des Zielfensters an (Textelemente können mit dem internen Tool "Window Spy" in Erfahrung gebracht werden).

AusnahmeTitel und AusnahmeText können verwendet werden, um ein oder mehrere Fenster anhand ihres Titels oder Textes auszuschließen. Ihre Angabe ähnelt der von FensterTitel und FensterText, außer dass AusnahmeTitel keine anderen Kriterien als den Fenstertitel erkennt.

Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann. Standardmäßig muss ein Fenstertitel mit dem angegebenen FensterTitel oder AusnahmeTitel beginnen, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.

Siehe auch die bekannte Einschränkung weiter unten.

Breite, Höhe

Wenn einer dieser Parameter leer ist, weggelassen wird oder das Wort DEFAULT ist, bleibt die Größe in dieser Dimension unverändert. Andernfalls geben Sie die neue Breite und Höhe des Fensters (in Pixel) an, was Ausdrücke sein können.

Bemerkungen

Wenn Breite oder Höhe gering (oder negativ) ist, werden die meisten Fenster mit einer Titelleiste in der Regel nicht kleiner als 112 x 27 Pixel gemacht (einige Fenstertypen können jedoch eine andere Mindestgröße haben). Wenn Breite oder Höhe hoch ist, werden die meisten Fenster nicht größer als etwa 12 Pixel über die Dimensionen des Desktops gemacht.

Negative X- und Y-Koordinaten sind erlaubt, um Multi-Bildschirm-Systeme zu unterstützen und um Fenster über den Bildschirmrand hinaus zu verschieben.

Obwohl WinMove minimierte Fenster nicht verschieben kann, kann es versteckte Fenster verschieben, wenn DetectHiddenWindows eingeschaltet ist.

Die Geschwindigkeit von WinMove wird durch SetWinDelay beeinflusst.

Bekannte Einschränkung: Enthält FensterTitel oder FensterText (, [ oder {, aber nicht das schließende Gegenstück, wie z.B. WinMove KEDIT - [, wird der Parameter automatisch als Ausdruck interpretiert, was zu einer Fehlermeldung führt. Um das zu verhindern, verwenden Sie das Prozent-Leerzeichen-Präfix, um einen Ausdruck zu erzwingen, z.B. WinMove % "KEDIT - [".

Auf Systemen mit mehreren Bildschirmen, die unterschiedliche DPI-Einstellungen haben, kann die endgültige Position und Größe des Fensters aufgrund der OS-DPI-Skalierung von den gewünschten Werten abweichen.

ControlMove, WinGetPos, WinHide, WinMinimize, WinMaximize, WinSet

Beispiele

Öffnet den Taschenrechner, wartet bis er existiert und verschiebt ihn in die obere linke Ecke des Bildschirms.

Run, calc.exe
WinWait, Rechner
WinMove, 0, 0 ; Verwendet das von WinWait gefundene Fenster.

Erstellt ein Popup-Fenster mit einer bestimmten Größe, das den Inhalt der Zwischenablage anzeigt, und verschiebt es in die obere linke Ecke des Bildschirms.

SplashTextOn, 400, 300, Zwischenablage, Die Zwischenablage enthält:`n%Clipboard%
WinMove, Zwischenablage,, 0, 0
MsgBox, Drücken Sie OK`, um das Splash-Fenster zu schließen
SplashTextOff

Zentriert ein Fenster auf dem Bildschirm.

FensterZentrieren("ahk_class Notepad")

FensterZentrieren(FensterTitel)
{
    WinGetPos,,, Breite, Höhe, %FensterTitel%
    WinMove, %FensterTitel%,, (A_ScreenWidth/2)-(Breite/2), (A_ScreenHeight/2)-(Höhe/2)
}