【问题标题】:autohotkey: how to resize window by both absolute and relative height after `InputBox`autohotkey:如何在“InputBox”之后通过绝对高度和相对高度调整窗口大小
【发布时间】:2017-10-18 03:24:00
【问题描述】:

我用

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

【问题讨论】:

    标签: windows window autohotkey


    【解决方案1】:

    最后,我用下面来改变活动窗口的四个(X,Y,宽度,高度)之一。

    #=:: ; 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
    

    使用示例
    Win= 之后,在输入框中输入以下内容

    • 800,设置高度为800
    • +300,增加高度300
    • h+300,增加高度300
    • w-100,宽度减小 300
    • x300,设置 X 为 300
    • y+200,将 Y 增加 200,(下移)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 2013-12-14
      • 2018-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多