请查看下面的代码
;----------------------------------------------------------------
; INFORMATION
;----------------------------------------------------------------
; Full resolution is 2560 * 1600
;
; Taskbar is 40 pixels high
;----------------------------------------------------------------
#NoEnv
SetTitleMatchMode, 2
^j::ResizeWin()
ResizeWin()
{
ifwinexist ahk_exe Chrome.exe ;Google Chrome
DoTheThing(0,0,1280,800)
ifwinexist ahk_class CommunicatorMainWindowClass ;Skype
DoTheThing(0,800,400,760)
ifwinexist ahk_class rctrl_renwnd32 ;Outlook
DoTheThing(1280,0,1280,1560)
ifwinexist ahk_exe WhatsApp.exe ;WhattsApp
DoTheThing(400,800,880,760)
}
DoTheThing(posX = 0, posY = 0, Width = 0, Height = 0)
{
WinActivate
WinMove,%WindowID%,,posX,posY,%Width%,%Height%
}
我编写了上面的代码,每当我将打开的窗口拖动到其他位置时,它们都会在桌面上重新排列。目前,这种方法还可以,但是我认为可以通过在函数调用中处理窗口的选择来清理代码。
在我看来,我应该只以 p>的多个实例结束
DoTheThing(posX,posY,Width,Height,Name/class/exe_of_the_window)
并在功能主体中处理激活和移动。 我将如何去做?
答案 0 :(得分:0)
我认为这是最简单的解决方案:
^j::ResizeWin()
ResizeWin(){
WinMove, ahk_exe Chrome.exe,, 0,0,1280,800
WinMove, ahk_class CommunicatorMainWindowClass,, 0,800,400,760
; ...
}