5

Я ищу способ центрировать активное окно на рабочем столе, используя Autohotkyes. Может кто-нибудь дать мне сценарий, который я мог бы использовать, пожалуйста. Спасибо

4 ответа4

5

http://www.autohotkey.com/docs/commands/WinMove.htm был первым результатом в Google с фразой "окно центра автоотключения". Это может помочь вам. Смотрите пример сценария.

Пример скрипта

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)
}

Индивидуальные

; 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")
4

В этих ответах используется сопоставление заголовков, которое может применяться к нескольким окнам. Это будет центрировать только активное окно, когда вы нажимаете win+c.

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

Для простоты и адаптивности я создал дополнительный супер-короткий скрипт, который просто берет активное окно и центрирует его, а также изменяет его размеры с учетом ширины и высоты. Возможно, это не то, что вы просили, за исключением того, что опоздали на несколько лет. Но это одна вещь в управлении окнами, которую я ожидаю от ОС во времена разрешений выше FHD. Надеюсь, кому-то еще это нужно. высокочастотный

; 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

Используя функцию CenterWindow() JohannesM , этот скрипт центрирует активное окно на горячей клавише RightShift & C Горячая клавиша RightShift & B перемещает центрированное окно обратно в исходное положение, высоту и ширину.

Чтобы использовать скрипт, скопируйте код и сохраните его в виде файла .ahk . Я использовал центр имени файла center active window_RShiftC_B.ahk

С установленным Autohokey , запустите скрипт, дважды щелкнув по активному файловому 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  

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .