首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AutoHotKey编写一系列简单的键盘快捷键

使用AutoHotKey编写一系列简单的键盘快捷键
EN

Stack Overflow用户
提问于 2019-08-20 21:33:03
回答 3查看 855关注 0票数 1

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

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

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

  1. Alt+right箭头(将光标移动到剪辑1的末尾)
  2. 向上翻页(将光标向后移动1秒)

..then我将剪辑2向后拖动到剪辑1上,以创建一个转换(在Shotcut中没有此转换的键盘快捷键)。然后..。

  1. 和4. Alt+right箭头两次(将光标移动到剪辑2的末尾)
  2. 页面向上移动(将光标移回1秒)。...etc等(重复此过程)。

所以我想知道的是,我如何用脚本来:

  1. 只需自动化上面的步骤1和步骤2(即。Alt+right箭头,然后向上页),按下,比如说,Ctrl+h in Shotcut.

和/或:

  1. 只需自动化步骤3,4和5以上(即Alt+right箭头两次,然后页向上).

或者,更好的是,我可以:

  1. 自动化步骤1,2,然后暂停ahk (当我拖动剪辑).然后继续步骤3,4和5.?

当按下PageUp时,我使用以下方法成功地获得了“Ctrl+h”:

代码语言:javascript
复制
^h::
send, {PgUp} 
return

然而,我尝试了下面的解决方案,只是为了在按下Ctrl+g时获得“Ctrl+g箭头”,但是它没有工作,-the游标没有动:

代码语言:javascript
复制
^g::
send, {!alt}
return

我哪里出问题了?

EN

回答 3

Stack Overflow用户

发布于 2019-08-20 22:05:58

你肯定在正确的轨道上。使用帮助,特别是https://www.autohotkey.com/docs/Tutorial.htm#s1上的“初学者教程”

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

代码语言:javascript
复制
^h::
    Send, {PgUp} 
    Sleep, 100  ;  optional delay (in milliseconds)
    SendInput, !{right}
return

或者尝试这样的方法:

代码语言:javascript
复制
^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,

票数 2
EN

Stack Overflow用户

发布于 2019-08-20 22:15:56

PGilm提供了一个很好的例子来说明如何组合热键。对于设置中的Sleep, 100,您可能希望用KeyWait, LButton, U https://www.autohotkey.com/docs/commands/KeyWait.htm替换它。

通过实现这一点,您可以使SendInput !{right}在释放鼠标1按钮后触发。您可以添加更多的KeyWait, LButton, DKeyWait, LButton, U,无论在示例中拖拽剪辑2超过剪辑1所需的总点击次数。

票数 1
EN

Stack Overflow用户

发布于 2019-08-21 09:00:06

感谢“PGilm”和“ilhom”--你的回答给了我所需要的启动。我的最后代码是

代码语言:javascript
复制
^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和其他程序中自动化进程提供了很多创造性的可能性)。泰克斯!!

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57581792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档