Questão Precisa de Autohotkey para centrar a janela ativa


Eu estou procurando uma maneira de centralizar a janela ativa na área de trabalho usando Autohotkyes. Alguém pode me dar um script que eu poderia usar por favor. obrigado


4


origem




Respostas:


http://www.autohotkey.com/docs/commands/WinMove.htm foi o primeiro resultado no google com a frase "autohotkey center window". Isso pode te ajudar. Veja o script de exemplo.

Exemplo de script

Executar, calc.exe
WinWait, Calculadora
WinMove, 0, 0; Mova a janela encontrada pelo WinWait para o canto superior esquerdo da tela.

SplashTextOn, 400, 300, Clipboard, A área de transferência contém: `n%% da área de transferência
WinMove, Clipboard, 0, 0; Mova a janela inicial para o canto superior esquerdo.
Msgbox, pressione OK para dispensar o SplashText
SplashTextOff

; A função a seguir centraliza a janela especificada na tela:
CenterWindow (WinTitle)
{
    WinGetPos ,,, Largura, Altura,% WinTitle%
    WinMove,% WinTitle% ,, (A_ScreenWidth / 2) - (largura / 2), (A_ScreenHeight / 2) - (altura / 2)
}

Personalizado

; A função a seguir centraliza a janela especificada na tela:
CenterWindow (WinTitle)
{
    WinGetPos ,,, Largura, Altura,% WinTitle%
    WinMove,% WinTitle% ,, (A_ScreenWidth / 2) - (largura / 2), (A_ScreenHeight / 2) - (altura / 2)
    Msgbox, fez o bloco de notas?
}

Executar, file.exe

CenterWindow ("título do arquivo.exe")

5



as respostas somente para link são desencorajadas, mas sinta-se à vontade para aplicar as informações contidas nesse link para que a resposta esteja em sua resposta. - soandos
Por que você colocaria algo na prancheta? - soandos


Por simplicidade e adaptabilidade eu criei um script adicional super curto que apenas pega a janela ativa e centraliza, mas também redimensiona com a largura e altura dadas. Isso talvez não seja exatamente o que você pediu, além de estar alguns anos atrasado. Mas, isso é uma coisa sobre o gerenciamento de janelas que eu espero dos SOs em tempos de resoluções acima de FHD. Espero que alguém mais precise disso. 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





Usando JohannesM's CenterWindow() função, este script centraliza a janela ativa na tecla de atalho RightShift & C. O hotkey RightShift & B move a janela centralizada de volta ao seu local original, altura e largura.

Para usar o script, copie o código e salve-o como um .ahk Arquivo. Eu usei o nome do arquivo center active window_RShiftC_B.ahk

Com Autohokey instalado, execute o script clicando duas vezes no arquivo 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





Essas respostas usam correspondência de título, que pode se aplicar a várias janelas. Isso centralizará somente a janela ativa, quando você pressionar win + c.

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

2