Tôi sẽ đề nghị sử dụng AutoHotkey .
Một tập lệnh ví dụ thực hiện chính xác những gì bạn hỏi đã được cung cấp trong câu trả lời cho câu hỏi khác .
Đây là mã của tập lệnh:
#!Up::CenterActiveWindow() ; if win+alt+↑ is pressed
CenterActiveWindow()
{
; Get the window handle from de active window.
winHandle := WinExist("A")
VarSetCapacity(monitorInfo, 40)
NumPut(40, monitorInfo)
; Get the current monitor from the active window handle.
monitorHandle := DllCall("MonitorFromWindow", "uint", winHandle, "uint", 0x2)
DllCall("GetMonitorInfo", "uint", monitorHandle, "uint", &monitorInfo)
; Get WorkArea bounding coordinates of the current monitor.
A_Left := NumGet(monitorInfo, 20, "Int")
A_Top := NumGet(monitorInfo, 24, "Int")
A_Right := NumGet(monitorInfo, 28, "Int")
A_Bottom := NumGet(monitorInfo, 32, "Int")
; Calculate window coordinates.
winW := (A_Right - A_Left) * 0.5 ; Change the factor here to your desired width.
winH := A_Bottom
winX := A_Left + (winW / 2)
winY := A_Top
WinMove, A,, winX, winY, winW, winH
}
Tôi đã điều chỉnh một chút để đáy cửa sổ không nằm dưới thanh tác vụ và thay đổi windowWidth
từ 0,7 thành 0,5.
Chỉnh sửa : hiện đang làm việc với nhiều màn hình và sử dụng vùng làm việc cho các giá trị trên cùng và dưới cùng.
Bên cạnh đó, WinSplit Revolution đã bị ngừng và thay thế bằng một ứng dụng trả phí có tên MaxTo.
Ngoài việc rất mạnh mẽ và bao gồm nhiều trường hợp sử dụng hơn, AutoHotkey cũng là nguồn mở và miễn phí.