按键精灵脚本制作教程:如何实现同时按多个键
最近发现许多小伙伴,提出类似这样的问题:“我手动按下v键,希望达到的效果是同时按下了Ctrl和V键”那么,要如何实现呢?我们今天就来分享下,几种实现方法。
操作方法
- 01
方法1-键盘命令 步骤:1、检测键盘按键,如果按下v则进行下一步2、按住ctrl键不放3、按下v键4、弹起ctrl键
- 02
代码: Do Key = WaitKey If key = 86 Then 'v的按键码为 86 KeyDown 17, 1 'ctrl 的按键码为 17 KeyPress 86, 1 KeyUp 17,1 End If Loop
- 03
以上是按下某一个键,达到的效果是按下组合键的方法如果希望按下某一个键,达到的效果是按下另外两个非组合键,例如按下V,实现的是按下W和C代码如下: Do Key = WaitKey If key = 86 Then 'v的按键码为 86 KeyPress 87, 1'W的按键码为 87 KeyPress 67, 1'C的按键码为 67 End If Loop
- 04
方法2-命令库命令 步骤:1、检测键盘按键,如果按下v则进行下一步2、调用 我的命令库 ——>键盘——>键盘组合键 命令
- 05
此命令的第一个参数,键盘码要怎么写呢?例如,我们要按下 Ctrl+V 键,那么参数1的值就为"Ctrl+V"如果,我们要按下 Ctrl+Alt+V 键,那么参数1的值就为"Ctrl+Alt+V"
- 06
代码: Do Key = WaitKey If key = 86 Then 'v的按键码为 86 Call lib.键盘.键盘组合键("Ctrl + V",0) End If Loop
- 07
如果希望按下某一个键,达到的效果是按下另外两个非组合键,例如按下V,实现的是按下W和C我们需要用到我的命令库 ——>键盘——>键盘按键组 命令
- 08
此命令的第一个参数,和 键盘组合键 命令的参数写法不一样例如,我们要按下W和C键那么,参数1的值就为:"W,C"键与键之间用逗号隔开 代码: Do Key = WaitKey If key = 86 Then 'v的按键码为 86 Call lib.键盘.键盘按键组("W,C",0,0) End If Loop
- 09
方法3-热键控件 步骤:1、在界面里画一个热键控件2、在窗口加载事件中设置热键V3、在热键Hotkey事件中,输入按下Ctrl+v的组合键
- 10
接下来,有两个方案1、在窗口加载事件中就给热键控件设置热键这里要设置热键控件的三个方法的值:Modifiers、Virtualkey、RegisterModifiers值:1为Shift键,2为Ctrl键,4为Alt键;6为Alt+Ctrl键……其他组合类同。 Virtualkey值:按键码和鼠标码;按键码为:65为A键;鼠标码为:32769左键按下……其他请到键盘/鼠标命令分类下查询。 Register值:True为注册,False为销毁。三个方法的值设置完之后,在热键控件的Hotkey事件中,输入按下组合键Ctrl+V的代码
- 11
代码: Event Form1.Hotkey1.Hotkey Call lib.键盘.键盘组合键("Ctrl + V",0) End Event Event Form1.Load //设置热键为:V Form1.Hotkey1.Virtualkey = 86 //注册热键;True为注册,False为销毁。 Form1.Hotkey1.Register True End Event 注意:设置热键之后,不要忘记用Register方法注册下热键,否则热键不生效。
- 12
2、运行窗口之后,在界面中设置热键控件 在热键控件的Change事件中,输入注册热键代码(当改了界面中热键控件的热键时,Change事件生效。) 接着和方案1一样,在热键控件的Hotkey事件中,输入按下组合键Ctrl+V的代码代码: Event Form1.Hotkey1.Hotkey Call lib.键盘.键盘组合键("Ctrl + V",0) End Event //当热键控件中的文本内容被改变后,触发Change事件 Event Form1.Hotkey1.Change Form1.Hotkey1.Register True End Event
- 13
拓展 有小伙伴问小编,有没有办法,我按下v键,输入ctrl+s,但是v键不响应。这只能通过去拦截键盘消息,用按键实现起来则有困难。那怎么办呢? 例如:当我们操作记事本时,希望按下V键则实现按下Ctrl+V键于是,我们用上面的方法来实现运行脚本之后,会发现按下V之后,确实操作了Ctrl+V键,把剪贴板内容粘上去了但是,前面的那个V怎么回事??
- 14
不希望V响应,我们可以换一个角度来想。我们设置热键不一定要是v对不对,我们设置一个记事本无法响应的键不就可以解决问题了吗?小编随便找个键测试了下,发现按下F7,记事本是没有响应的。 那我们就把热键设置为F7效果: