【问题标题】:Can you fix my Ctrl+Left Ctrl+Shift+Left script?你能修复我的 Ctrl+Left Ctrl+Shift+Left 脚本吗?
【发布时间】:2018-11-14 18:22:43
【问题描述】:

这只是有点不像我想要的。它工作正常,但如果我想按住功能,它将执行一次操作并添加数字而不是重复该功能。我想要一些东西来加快 Ctrl+左箭头、Ctrl+Shift+左箭头、Ctrl+右箭头和 Ctrl+Shift+右箭头的过程,以便我可以更快地处理文本。 https://www.youtube.com/watch?v=VNRCQx0eWA0 您可以在此处查看我所指的示例以及出了什么问题。我已经在视频标题中标记了错误。

script.ahk 脚本内容

^1::
Send ^{Left Down}^{Left Down}
return
^2::
Send ^{Left Down}^{Left Down}^{Left Down}
return
^3::
Send ^{Left Down}^{Left Down}^{Left Down}^{Left Down}
return
^4::
Send ^{Left Down}^{Left Down}^{Left Down}^{Left Down}^{Left Down}
return
^5::
Send ^{Left Down}^{Left Down}^{Left Down}^{Left Down}^{Left Down}^{Left Down}
return
^6::
Send ^{Right Down}^{Right Down}
return
^7::
Send ^{Right Down}^{Right Down}^{Right Down}
return
^8::
Send ^{Right Down}^{Right Down}^{Right Down}^{Right Down}
return
^9::
Send ^{Right Down}^{Right Down}^{Right Down}^{Right Down}^{Right Down}
return
^0::
Send ^{Right Down}^{Right Down}^{Right Down}^{Right Down}^{Right Down}^{Right Down}
return
^+1::
Send ^+{Left Down}^+{Left Down}
return
^+2::
Send ^+{Left Down}^+{Left Down}^+{Left Down}
return
^+3::
Send ^+{Left Down}^+{Left Down}^+{Left Down}^+{Left Down}
return
^+4::
Send ^+{Left Down}^+{Left Down}^+{Left Down}^+{Left Down}^+{Left Down}
return
^+5::
Send ^+{Left Down}^+{Left Down}^+{Left Down}^+{Left Down}^+{Left Down}^+{Left Down}
return
^+6::
Send ^+{Right Down}^+{Right Down}
return
^+7::
Send ^+{Right Down}^+{Right Down}^+{Right Down}
return
^+8::
Send ^+{Right Down}^+{Right Down}^+{Right Down}^+{Right Down}
return
^+9::
Send ^+{Right Down}^+{Right Down}^+{Right Down}^+{Right Down}^+{Right Down}
return
^+0::
Send ^+{Right Down}^+{Right Down}^+{Right Down}^+{Right Down}^+{Right Down}^+{Right Down}
return
#q::exitApp

【问题讨论】:

    标签: windows autohotkey auto


    【解决方案1】:
    Keys := ["1","2","3","4","5","6","7","8","9","0"]
    for each, key in Keys
    {
        Hotkey, ^%key%, Ctrl_Key, On 
        Hotkey, ^+%key%, Ctrl_Key, On
    }
    return
    
    Ctrl_Key:
        last_Key := ""
        Index := ""
        last_Key := SubStr(A_ThisHotkey, 0)
        If (last_Key = 0)
            Index = 5
        else
        If (last_Key < 6)
            Index := last_Key + 1
        else
            Index := last_Key - 4
        Loop %Index%
        {
            If (last_Key < 6) and (last_Key > 0)
            {
                If GetKeyState("Shift","P")
                    Send +^{Left}
                else
                    Send ^{Left}
            }
            else
            {
                If GetKeyState("Shift","P")
                    Send +^{Right}
                else
                    Send ^{Right}
            }
        }
        ; Don't repeat the action before key is released: 
        KeyWait, %last_Key%
    return
    

    请参阅文档中的For-LoopHotkeySubStr,如果您有不明白的地方,请随时提出。

    【讨论】:

    • 感谢您的回复,我尝试了此代码,但是当我按住 Ctrl+数字组合时得到相同的结果,它执行所需的操作,然后不断重复按下的数字与重复所需的操作.
    • 查看编辑后的答案(如果我理解正确的话)。
    • 完美运行,谢谢,我真的很感激,也感谢您链接您使用的手册部分。
    【解决方案2】:

    从所有命令中删除 down。正确的语法是:

    ^1::
        send ^{left}
    return
    

    要进行重复,您可以在数字括号内写一个数字,例如重复选择 5 次:

    ^+5::
        send ^+{right 5}
    return
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多