Я ищу способ центрировать активное окно на рабочем столе, используя Autohotkyes. Может кто-нибудь дать мне сценарий, который я мог бы использовать, пожалуйста. Спасибо
4 ответа
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")
В этих ответах используется сопоставление заголовков, которое может применяться к нескольким окнам. Это будет центрировать только активное окно, когда вы нажимаете win+c.
#c::
WinExist("A")
WinGetPos,,, sizeX, sizeY
WinMove, (A_ScreenWidth/2)-(sizeX/2), (A_ScreenHeight/2)-(sizeY/2)
return
Для простоты и адаптивности я создал дополнительный супер-короткий скрипт, который просто берет активное окно и центрирует его, а также изменяет его размеры с учетом ширины и высоты. Возможно, это не то, что вы просили, за исключением того, что опоздали на несколько лет. Но это одна вещь в управлении окнами, которую я ожидаю от ОС во времена разрешений выше 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
}
Используя функцию 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