Autohotkey 使用自动热键编程一系列简单的键盘快捷键

Autohotkey 使用自动热键编程一系列简单的键盘快捷键,autohotkey,Autohotkey,我是一个AHK初学者,已经试了一天了。我取得了一些成功,但我被困住了 我想使用ahk自动执行一个名为Shotcut(视频编辑器)的程序中现有键盘快捷键所完成的重复任务。因此,在Shotcut中,我在时间轴上一个接一个地安排了一系列剪辑(我将它们称为clip1、clip2、clip3等) 目前,使用Shotcut的键盘快捷键,我按下: Alt+右箭头(将光标移动到剪辑1的末尾) 向上翻页(将光标向后移动1秒) …然后我将剪辑2向后拖动到剪辑1上,以创建一个过渡(在Shotcut中没有键盘快捷键)。

我是一个AHK初学者,已经试了一天了。我取得了一些成功,但我被困住了

我想使用ahk自动执行一个名为Shotcut(视频编辑器)的程序中现有键盘快捷键所完成的重复任务。因此,在Shotcut中,我在时间轴上一个接一个地安排了一系列剪辑(我将它们称为clip1、clip2、clip3等)

目前,使用Shotcut的键盘快捷键,我按下:

  • Alt+右箭头(将光标移动到剪辑1的末尾)
  • 向上翻页(将光标向后移动1秒)
  • …然后我将剪辑2向后拖动到剪辑1上,以创建一个过渡(在Shotcut中没有键盘快捷键)。。 然后

  • 四,。Alt+向右箭头两次(将光标移动到剪辑2的末尾)
  • 向上翻页(将光标向后移动1秒)。 …等等(重复此过程)
  • 所以我想知道的是,我如何编写ahk脚本:

  • 只需在Shotcut中按Ctrl+h,即可自动执行上面的步骤1和步骤2(即Alt+右箭头,然后向上翻页)
  • 和/或:

  • 只需自动执行上面的步骤3、4和5(即Alt+向右箭头两次,然后翻页)
  • 或者,更好的是,我可以:

  • 自动执行步骤1、2,然后暂停ahk(当我拖动剪辑时)。。。然后继续执行步骤3、4和5
  • 当按下Ctrl+h时,我使用以下方法成功地仅获取“PageUp”:

    ^h::
    send, {PgUp} 
    return
    
    但是,我尝试了以下方法,只是为了解决按Ctrl+g键时出现“Alt+向右箭头”的问题,但没有成功-光标静止不动:

    ^g::
    send, {!alt}
    return
    

    我哪里做错了?

    请确保你走的是正确的道路。使用帮助,特别是“初学者教程”,也可以在

    因此,只需将它们全部添加在一起,并可以选择在两个步骤之间添加一些等待时间,以确保第一个步骤完成,如下所示:

    ^h::
        Send, {PgUp} 
        Sleep, 100  ;  optional delay (in milliseconds)
        SendInput, !{right}
    return
    
    或者试试这样:

    ^g::doSomething(A_ThisHotkey) ; ctrl+g presses alt+left
    ^h::doSomething(A_ThisHotkey) ; ctrl+h presses alt+right
    
    doSomething(me){
        msgbox success! You pressed %me%
        Send, {PgUp} 
        Sleep, 100  ;  optional delay (in milliseconds)
        IfEqual, me, "^g", SendInput, {Alt Down}{left}{Alt Up}
        IfEqual, me, "^h", SendInput, {Alt Down}{right}{Alt Up}
    return
    }
    

    Hth,

    PGilm提供了一个如何组合热键的好例子。对于他的设置中的
    Sleep,100
    ,您可能希望将其替换为
    KeyWait,LButton,U


    通过实现这一点,您可以导致
    SendInput!{right}
    释放鼠标1键后触发。您可以添加更多的
    KeyWait、LButton、D
    KeyWait、LButton、U
    ,无论您在示例中将剪辑2拖动到剪辑1上需要多少次总点击量。

    多亏了@PGilm和@ilhom,您的回复给了我所需的启动。我最后的密码是

    ^h::
    Send !{right}
    Sleep 600
    send, {PgUp} 
    Sleep 2000
    Send !{right}{Alt Up}
    Sleep 600
    Send !{right}{Alt Up}
    Sleep 600
    send, {PgUp} 
    return
    
    像做梦一样工作!我发现我需要
    {Alt Up}
    之后!{right}
    或者它不起作用。 (我知道代码很简单,但对我(一个新手)来说,这为Shotcut和其他程序中的自动化过程开辟了许多创造性的可能性)。太好了


    PS抱歉,如果回答我自己的问题是不礼貌的……

    EDIT:我刚刚通过使用^g::SendInput解决了alt+right问题(如上所述)!{right}返回。。现在我只需要找出如何让快捷方式连续运行。谢谢!我明天(睡觉后)试试这个。非常有用!!非常感谢。我明天会试试这个。非常感谢你的回答。关于在这里发布的新手问题-我如何格式化我的文本,使代码片段像你一样出现在灰色框中?@JSR check-edited-answer。另外,为了获得代码片段,我对一组文本使用ctrl+q。它的效果是将文本缩进4个空格(这也构成了一个代码块)。反勾号(从tilda键)
    灰色框
    内联。在编辑屏幕的右侧或?新问题框右侧的图标。这是一种简单的降价编辑语言。谢谢,PGilm。我已经掌握了窍门!!好东西。如果您有时需要按alt+left键,请查看我编辑的答案。您将在帮助中发现,它确实提到,在发送密钥时,最好明确地持有密钥。例如,对于ctrl+c复制,
    Send,{ctrl-down}c{ctrl-up}
    显然比
    Send,^c
    更可靠。所以对你来说,
    {Alt Down}{right}{Alt Up}
    。我还可以提到,如果一行中的两个Alt+right步骤之间不需要任何时间,那么多个按键的工作方式是这样的:
    {Alt Down}{right 2}{Alt Up}
    ,绝妙的建议,@PGilm。是的,我计划做更多的自动化操作,包括Ctrl-c和Alt+left,所以您的帮助很到位!