Frage Benötigt Autohotkey, um das aktive Fenster zu zentrieren


Ich suche nach einer Möglichkeit, das aktive Fenster auf dem Desktop mit Autohotkyes zu zentrieren. Kann mir jemand ein Skript geben, das ich bitte benutzen könnte. Vielen Dank


4
2018-03-21 11:17


Ursprung




Antworten:


http://www.autohotkey.com/docs/commands/WinMove.htm war das erste Ergebnis bei Google mit dem Ausdruck "autohotkey center window". Es kann dir helfen. Siehe das Beispielskript.

Beispielskript

Führen Sie calc.exe aus
WinWait, Rechner
WinMove, 0, 0; Verschiebe das von WinWait gefundene Fenster in die obere linke Ecke des Bildschirms.

SplashTextOn, 400, 300, Zwischenablage, Die Zwischenablage enthält: `n% Zwischenablage%
WinMove, Zwischenablage,, 0, 0; Verschieben Sie das Begrüßungsfenster in die linke obere Ecke.
Msgbox, Drücken Sie OK, um den SplashText zu schließen
SplashTextOff

; Die folgende Funktion zentriert das angegebene Fenster auf dem Bildschirm:
CenterWindow (WinTitle)
{
    WinGetPos ,,, Breite, Höhe,% WinTitle%
    WinMove,% WinTitle% ,, (A_ScreenWidth / 2) - (Breite / 2), (A_ScreenHeight / 2) - (Höhe / 2)
}

Angepasst

; Die folgende Funktion zentriert das angegebene Fenster auf dem Bildschirm:
CenterWindow (WinTitle)
{
    WinGetPos ,,, Breite, Höhe,% WinTitle%
    WinMove,% WinTitle% ,, (A_ScreenWidth / 2) - (Breite / 2), (A_ScreenHeight / 2) - (Höhe / 2)
    ; Msgbox, das Editor Center erstellt?
}

Führen Sie die Datei.exe aus

CenterWindow ("Titel der Datei.exe")

5
2018-03-21 11:23



Link-Only-Antworten werden nicht empfohlen, aber fühlen Sie sich frei, die Informationen zu übernehmen, die in diesem Link enthalten sind, sodass die Antwort in Ihrer Antwort enthalten ist. - soandos
Warum würdest du etwas in die Zwischenablage stellen? - soandos


Aus Gründen der Einfachheit und Anpassungsfähigkeit habe ich ein zusätzliches super kurzes Skript erstellt, das nur das aktive Fenster aufnimmt und zentriert, aber auch in der angegebenen Breite und Höhe skaliert. Das ist vielleicht nicht genau das, wonach Sie gefragt haben, abgesehen von einigen Jahren Verspätung. Aber das ist eine Sache über das Windows-Management, das ich von OSs in Zeiten von Auflösungen über FHD erwarte. Hoffentlich braucht es jemand anderes. hf

; HOTKEYS
#!Up::CenterActiveWindow() ; if win+alt+↑ is pressed

CenterActiveWindow()
{
    windowWidth := A_ScreenWidth * 0.7 ; desired width
    windowHeight := A_ScreenHeight ; desired height
    WinGetTitle, windowName, A
    WinMove, %windowName%, , A_ScreenWidth/2-(windowWidth/2), 0, windowWidth, windowHeight
}

3
2017-12-22 19:27





Verwenden JohannesMist es CenterWindow() Funktion zentriert dieses Skript das aktive Fenster auf den Hotkey RightShift & C. Der Hotkey RightShift & B Verschiebt das zentrierte Fenster zurück an die ursprüngliche Position, Höhe und Breite.

Um das Skript zu verwenden, kopieren Sie den Code und speichern Sie ihn als .ahk Datei. Ich habe den Dateinamen verwendet center active window_RShiftC_B.ahk

Mit Autohokey installiert, führen Sie das Skript durch einen Doppelklick auf die Datei aus center active window_RShiftC_B.ahk

RShift & c::

global windowName
global X
global Y
global begWidth
global begHeight

WinGetTitle, windowName, A

WinGetPos, X, Y, begWidth, begHeight, %windowName%

CenterWindow(windowTitleVariable)
{
    WinGetPos,,, Width, Height, %windowTitleVariable%
    WinMove, %windowTitleVariable%,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2    )-(Height/2)
}

CenterWindow(windowName)

return


RShift & b::

WinMove, %windowName%,, X, Y, begWidth, begHeight

return  

2
2018-06-06 21:16





Diese Antworten verwenden eine Titelübereinstimmung, die für mehrere Fenster gelten könnte. Dadurch wird nur das aktive Fenster zentriert, wenn Sie win + c drücken.

#c::
WinExist("A")
WinGetPos,,, sizeX, sizeY
WinMove, (A_ScreenWidth/2)-(sizeX/2), (A_ScreenHeight/2)-(sizeY/2)
return

2
2017-11-12 19:21