求助用autohotkey编写键盘替换脚本

要求:当按下“~”键时(不输出“~”)Q键替换为7,W键替换为8,E键替换为9(具体还有8个键要替换,这里就不写了,我自己来增加)若按下空格键,则输出空格键,结束上面的按... 要求:
当按下“~”键时(不输出“~”)
Q键替换为7,W键替换为8,E键替换为9(具体还有8个键要替换,这里就不写了,我自己来增加)
若按下空格键,则输出空格键,结束上面的按键替换,键盘恢复正常
等待下一次输入“~”键
另,这个脚本不管有无运行,都不能影响我其它不涉及替换的按键的正常使用
展开
 我来答
sunshinezxk
推荐于2016-10-11 · TA获得超过661个赞
知道小有建树答主
回答量:355
采纳率:50%
帮助的人:421万
展开全部
;定义变量
toggle = 0


`::
;~
toggle = 1
Return

~Space::
;加~发送原有按键
toggle = 0
Return

$q::
;加$屏蔽脚本按键
if toggle = 1
{
Send, {7 Down} ;第一次按下一秒内只发送一次
KeyWait, q, T1
Loop
{
GetKeyState, q_state, q, P ;检测q的状态
if q_state = U
{
Send, {7 Up} ;抬起
Break ;中断循环
}
Else
{
Send, {7 Down} ;按下
}
Sleep, 30 ;休息30ms
}
}
if toggle = 0
{
Send, {q Down} ;第一次按下一秒内只发送一次
KeyWait, q, T1
Loop
{
GetKeyState, q_state, q, P ;检测q的状态
if q_state = U
{
Send, {q Up} ;抬起
Break ;中断循环
}
Else
{
Send, {q Down} ;按下
}
Sleep, 30 ;休息30ms
}
}
Return

$w::
;加$屏蔽脚本按键
if toggle = 1
{
Send, {8 Down} ;第一次按下一秒内只发送一次
KeyWait, w, T1
Loop
{
GetKeyState, w_state, w, P ;检测q的状态
if w_state = U
{
Send, {8 Up} ;抬起
Break ;中断循环
}
Else
{
Send, {8 Down} ;按下
}
Sleep, 30 ;休息30ms
}
}
if toggle = 0
{
Send, {w Down} ;第一次按下一秒内只发送一次
KeyWait, w, T1
Loop
{
GetKeyState, w_state, w, P ;检测q的状态
if w_state = U
{
Send, {w Up} ;抬起
Break ;中断循环
}
Else
{
Send, {w Down} ;按下
}
Sleep, 30 ;休息30ms
}
}
Return
更多追问追答
追问
感谢您的答案!
运行发现了一个问题,按Q键时输出了连续的7,我只需要按一次Q输出一次7即可。
可否帮忙调整下。
追答

↑上面已调整   简单版本  仅按一次

;定义变量
toggle = 0


`::
;~
toggle = 1
Return

~Space::
;加~发送原有按键
toggle = 0
Return

$q::
;加$屏蔽脚本按键
if toggle = 1
Send, 7
if toggle = 0
Send, q
Return

$w::
;加$屏蔽脚本按键
if toggle = 1
Send, 8
if toggle = 0
Send, w
Return
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式