如何按一个键达到按多个键的效果?
本文由按键学院提供技术支持
按键学院交流群(1群已满):376122403
零基础学按键精灵群(2群):372671254
最近发现许多小伙伴,提出类似这样的问题:“我手动按下v键,希望达到的效果是同时按下了Ctrl和V键”那么,要如何实现呢?我们今天就来分享下,几种实现方法。 |
|
方法1-键盘命令步骤: 1、检测键盘按键,如果按下v则进行下一步 2、按住ctrl键不放 3、按下v键 4、弹起ctrl键 |
代码:- Do
- Key = WaitKey
- If key = 86 Then 'v的按键码为 86
- KeyDown 17, 1 'ctrl 的按键码为 17
- KeyPress 86, 1
- KeyUp 17,1
- End If
- Loop
复制代码以上是按下某一个键,达到的效果是按下组合键的方法 如果希望按下某一个键,达到的效果是按下另外两个非组合键,例如按下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
复制代码
方法2-命令库命令
步骤: 1、检测键盘按键,如果按下v则进行下一步 2、调用 我的命令库 ——>键盘——>键盘组合键 命令
|
命令名称: | 键盘组合键 |
命令功能: | 键盘组合键 |
命令参数: | 参数1 字符串型,键盘码参数2 整数型,模拟方式 |
返回值: | 无
|
此命令的第一个参数,键盘码要怎么写呢?
例如,我们要按下 Ctrl+V 键,那么参数1的值就为"Ctrl+V"
如果,我们要按下 Ctrl+Alt+V 键,那么参数1的值就为"Ctrl+Alt+V"
代码:- Do
- Key = WaitKey
- If key = 86 Then 'v的按键码为 86
- Call lib.键盘.键盘组合键("Ctrl + V",0)
- End If
- Loop
复制代码如果希望按下某一个键,达到的效果是按下另外两个非组合键,例如按下V,实现的是按下W和C 我们需要用到我的命令库 ——>键盘——>键盘按键组 命令 |
命令名称: | 键盘按键组 |
命令功能: | 键盘按键组 |
命令参数: | 参数1 字符串型,键码组参数2 整数型,模拟方式参数3 整数型,毫秒延时 |
返回值: | 无 |
此命令的第一个参数,和 键盘组合键 命令的参数写法不一样
例如,我们要按下W和C键
那么,参数1的值就为:"W,C"
键与键之间用逗号隔开
代码:- Do
- Key = WaitKey
- If key = 86 Then 'v的按键码为 86
- Call lib.键盘.键盘按键组("W,C",0,0)
- End If
- Loop
复制代码 方法3-热键控件步骤:
1、在界面里画一个热键控件 2、在窗口加载事件中设置热键V 3、在热键Hotkey事件中,输入按下Ctrl+v的组合键 |
- 您所在的用户组无法下载或查看附件
接下来,有两个方案
1、在窗口加载事件中就给热键控件设置热键
这里要设置热键控件的三个方法的值:Modifiers、Virtualkey、Register
Modifiers值:1为Shift键,2为Ctrl键,4为Alt键;6为Alt+Ctrl键……其他组合类同。
Virtualkey值:按键码和鼠标码;按键码为:65为A键;鼠标码为:32769左键按下……其他请到键盘/鼠标命令分类下查询。 Register值:True为注册,False为销毁。 三个方法的值设置完之后,在热键控件的[backcolor=rgb(249, 249, 249)]Hotkey事件中,输入按下组合键Ctrl+V的代码
代码:- 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方法注册下热键,否则热键不生效。
2、运行窗口之后,在界面中设置热键控件 在热键控件的Change事件中,输入注册热键代码(当改了界面中热键控件的热键时,Change事件生效。)
接着和方案1一样,在热键控件的[backcolor=rgb(249, 249, 249)]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
复制代码 拓展有小伙伴问小编,有没有办法,我按下v键,输入ctrl+s,但是v键不响应。 这只能通过去拦截键盘消息,用按键实现起来则有困难。 那怎么办呢?
|
例如:
当我们操作记事本时,希望按下V键则实现按下Ctrl+V键
于是,我们用上面的方法来实现
运行脚本之后,会发现
按下V之后,确实操作了Ctrl+V键,把剪贴板内容粘上去了
但是,前面的那个V怎么回事??- 您所在的用户组无法下载或查看附件
不希望V响应,我们可以换一个角度来想。
我们设置热键不一定要是v对不对,我们设置一个记事本无法响应的键不就可以解决问题了吗?
小编随便找个键测试了下,发现按下F7,记事本是没有响应的。
那我们就把热键设置为F7
效果: - 您所在的用户组无法下载或查看附件
本文由按键学院提供技术支持
【招生】主流回合制常见功能网络辅助教学——你懂得!