我用
InputBox, height_i, Resize, Height:, , 140, 130
获取输入,然后使用height_i
相应地更改窗口大小。
问题是如何区分以下情况:
+80
,使用当前高度+ 80作为新高度。80
,使用80作为新的高度。-80
,使用当前高度 - 80作为新高度。按WinGetActiveStats
获取当前高度,将窗口大小设置为WinMove
。
我目前正在使用
WinMove, ahk_id %window%, , , , , height_i
只能通过绝对高度设置窗口高度。我怎么能按相对高度设置窗口高度,例如+80
,-80
。
最初的想法来自Program to resize any window to specific sizes
编辑编辑
实际上我使用更复杂的变体来设置活动窗口的四个(X,Y,宽度,高度)中的一个。请参阅下面的答案。
修改
最后,我使用下面的
#=:: ; set height of active window, `A` for active window
InputBox, height_i, Resize, Height:, , 140, 130
first_char := SubStr(height_i, 1, 1)
if (first_char = "+" or first_char = "-")
{
WinGetPos,,,,height, A
height_i += height
}
WinMove, A, , , , , height_i
return
答案 0 :(得分:0)
最后,我使用下面的方法来改变活动窗口的四个(X,Y,宽度,高度)中的一个。
[
array([[-0.08758801, -0.20260376, 0.23681498, -0.59153044, -0.26144034,
0.48446459, -0.02285194, 0.0874517 , 0.0555284 , -0.14660612,
0.05574059, -0.14752924],
[ 0.20496374, -0.4272995 , 0.07676286, -0.38965166, 0.47710329,
-0.26640627, -0.33820981, -0.48640659, 0.11153179, -0.01180136,
-0.52833426, 0.56279379],
[-0.12849617, 0.2982074 , 0.38974017, -0.58133346, -0.09883761,
0.56037289, 0.57482034, 0.08853614, 0.14282584, -0.52498174,
-0.35414279, -0.49750996]], dtype=float32), array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), array([[-0.65539688],
[-0.58926439],
[ 0.6232332 ],
[-0.6493122 ],
[ 0.57437611],
[-0.42971158],
[ 0.66621709],
[-0.17393446],
[ 0.57196724],
[-0.01042461],
[ 0.32426012],
[-0.08326346]], dtype=float32), array([ 0.], dtype=float32)]
[array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]], dtype=float32), array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32), array([[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.]], dtype=float32), array([ 0.], dtype=float32)]
使用示例,
在 Win = 之后,在输入框中输入以下内容
#=:: ; set X/Y/width/height of window, `A` for active window
InputBox, new_i, Resize, Height:, , 140, 130
prefix := ""
first_char := SubStr(new_i, 1, 1)
if (first_char = "x" or first_char = "y" or first_char = "w" or first_char = "h") {
prefix := first_char
new_i := SubStr(new_i,2)
first_char := SubStr(new_i, 1, 1)
}
if (first_char = "+" or first_char = "-")
{
if (prefix = "x")
WinGetPos,old,,,, A
else if (prefix = "y")
WinGetPos,,old,,, A
else if (prefix = "w")
WinGetPos,,,old,, A
else
WinGetPos,,,,old, A
new_i += old
}
if (prefix = "x")
WinMove, A, , new_i, , ,
else if (prefix = "y")
WinMove, A, , , new_i, ,
else if (prefix = "w")
WinMove, A, , , , new_i,
else
WinMove, A, , , , , new_i
return
,将身高设置为800 800
,身高增加300 +300
,身高增加300 h+300
,将宽度减少300 w-100
,将X设为300 x300
,将Y增加200,(向下移动)