5

I'm looking for a way to center the active window on the desktop using Autohotkyes. Can someone give me a script that I could use please. Thanks

6

http://www.autohotkey.com/docs/commands/WinMove.htm was the first result on google with the phrase "autohotkey center window". It may help you out. See the example script.

Example Script

Run, calc.exe
WinWait, Calculator
WinMove, 0, 0 ; Move the window found by WinWait to the upper-left corner of the screen.

SplashTextOn, 400, 300, Clipboard, The clipboard contains:`n%clipboard%
WinMove, Clipboard, , 0, 0 ; Move the splash window to the top left corner. 
Msgbox, Press OK to dismiss the SplashText
SplashTextOff

; The following function centers the specified window on the screen:
CenterWindow(WinTitle)
{
    WinGetPos,,, Width, Height, %WinTitle%
    WinMove, %WinTitle%,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2)-(Height/2)
}

Customized

; The following function centers the specified window on the screen:
CenterWindow(WinTitle)
{
    WinGetPos,,, Width, Height, %WinTitle%
    WinMove, %WinTitle%,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2)-(Height/2)
    ;Msgbox, Made the Notepad Center?
}

Run, file.exe

CenterWindow("title of file.exe")
  • 3
    link only answers are discouraged, but feel free to apply the information that is in that link so that the answer is in your answer. – soandos Mar 21 '12 at 11:24
  • 1
    Why would you put something on the clipboard? – soandos Mar 21 '12 at 11:36
4

These answers use title matching, which could apply to several windows. This will center only the active window, when you press win+c.

#c::
WinExist("A")
WinGetPos,,, sizeX, sizeY
WinMove, (A_ScreenWidth/2)-(sizeX/2), (A_ScreenHeight/2)-(sizeY/2)
return
  • I like this as the active window being moved to center of screen doesn't change size. But, what does the "A" represent? Is that like a wildcard for any window that's active? – fohrums Dec 8 '18 at 11:09
4

For simplicity and adaptibilty I created an additional super short script which just takes the active window and centers it but also resizes it with the given width and height. This is maybe not what you exactly asked for, apart from being some years late. But, this is one thing about windows management I expect from OSes in times of resolutions above FHD. Hopefully someone else has need of it. 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

Using JohannesM's CenterWindow() function, this script centers the active window on the hotkey RightShift & C. The hotkey RightShift & B moves the centered window back to its original location, height and width.

To user the script, copy the code and save it as a .ahk file. I used the filename center active window_RShiftC_B.ahk

With Autohokey installed, run the script by double clicking on the file 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  

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.