想要咨询一个问题,如何加入一个按键开关切换的功能
autohotkey吧
全部回复
仅看楼主
level 1
我希望按一次F1 这边ZXC的脚本可以运行
再按一次ZXC另一个ZXC的定义可以运行
我尝试使用#if 和if loop方式写,都没写对,来这里请教
2018年05月31日 13点05分 1
level 1
继续求助、、、、、
2018年06月13日 07点06分 2
level 10
我之前做过类似的功能,但是是不同热键控制不同脚本,比较简单的方法,你可以参考下。先定义两个子程序 Label1: Label2: 然后用热键映射Goto 跳转子程序。大概如下
+1::Goto Label1 ;Shift+1跳转Label1
+2::Goto Label2: ;Shift+2跳转Label2
Label1:
..............
return
Label2:
.............
return
2018年06月13日 12点06分 3
好的,谢谢你
2018年06月13日 12点06分
但是return可能不会回到lable层啊
2018年06月13日 12点06分
@大司马郭祀 return 就跳出lebel回到主程序 主程序没代码 程序结束。难道我搞错return 意思了么[疑问]
2018年06月13日 13点06分
回复 舊損友 :我想让他继续按一个键能生效
2018年06月13日 14点06分
level 1
F1::
judge_s := !judge_s
if judge_s
goto ZXC_1
else
goto ZXC_2
return
ZXC_1:
return
ZXC_2:
return
2018年06月14日 02点06分 4
谢谢,我去试试
2018年06月14日 03点06分
@大司马郭祀 咋样?能行不[哈哈]
2018年06月14日 03点06分
@大司马郭祀 我之前在想,你是不是把问题写错了,“再按一次ZXC另一个ZXC的定义可以运行[疑问]
2018年06月14日 03点06分
回复 ybxgrrp90926 :还没在电脑前,实验了给你结果啊,谢谢你的热心
2018年06月14日 03点06分
level 1
这样写更好
F1:
if judge_s := !judge_s
goto ZXC_1
else
goto ZXC_2
return
ZXC_1:
return
ZXC_2:
return
2018年06月14日 03点06分 5
效果不好 ZXC_1里的无法顺利调用
2018年06月14日 06点06分
level 1
我测试了,没问题呀! 按下F1 运行 ZXC_1, 再按一次F1运行 ZXC_2,正常。
2018年06月14日 08点06分 6
我zxc_1里面是3个子程序,z一个命令x一个c一个
2018年06月14日 08点06分
@大司马郭祀 你能把你的代码,不泄露重要信息的部分贴出来分析一下就好了
2018年06月14日 08点06分
@ybxgrrp90926 你的意思是,ZXC分别对应Z X C三个热键?
2018年06月14日 08点06分
@大司马郭祀 你别让我猜呀, 我 猜 你可能需要用到 Hotkey 命令
2018年06月14日 08点06分
level 1
也许你需要的是这样的操作
2018年06月14日 08点06分 7
level 1
贴吧交流的效率可真是太高了,哈哈![茶杯]
2018年06月14日 08点06分 8
level 1
我刚才在干别的,其实我是用SEND KEY了
z::
Send {left Down}
Sleep 136
send {shift Down}
Sleep 136
send {shift Up}
Sleep 436
send {shift Down}
Sleep 120
send {shift Up}
Sleep 176
Send {left up}
return
这是一个典型的。。。。
2018年06月14日 08点06分 9
level 1
我明白你的意思了,稍等,看我的
2018年06月14日 08点06分 10
level 1
这样就行了,按下z 会执行你要的,你把 ZXC_1_Z:里面的内容换你需要的就搞定了
#NoTrayIcon
fn := Func("judge_func")
judge_func() {
global
return judge_s
}
Hotkey, If, % fn
Hotkey, Z, ZXC_1_Z
Hotkey, X, ZXC_1_X
Hotkey, C, ZXC_1_C
return
F1::
judge_s := !judge_s
return
ZXC_1_Z:
MsgBox 1_z
return
ZXC_1_X:
return
ZXC_1_C:
return
Z::
MsgBox 2_z
return
X::
return
C::
return
2018年06月14日 08点06分 11
z:: 也换成 你需要的, F1 是 你的转换 开关键[哈哈]你试试。。
2018年06月14日 08点06分
好的我去测试一下
2018年06月14日 08点06分
回复 ybxgrrp90926 :调好了,太感谢您了
2018年06月14日 09点06分
@大司马郭祀 嗯?都行了!哈哈,我也很开心。[真棒]
2018年06月14日 09点06分
level 1
我还有一种办法,就是这样
#NoTrayIcon
F1::
judge_s := !judge_s
returnZ::
if judge_s
goto ZXC_1
else
goto ZXC_2
return
X::
;同理
return
C::
;同理
returnZXC_1:
MsgBox 1
returnZXC_2:
MsgBox 2
return
2018年06月14日 08点06分 12
hi,在么?想请教下,如果现在我想在3个状态中切换(1,2,3),怎么实现效率最高?就是,定义一个变量switch=1, 当我按鼠标侧键XBotton1的时候-1,按鼠标侧键XBotton2的时候+1,但这个变量始终在1,2,3中循环
2019年01月05日 11点01分
我一个思路是取模,用switch%3来确 另一个思路是用if控制,当大于3时变成1,当小于1时变 不知道数组里有没有指针,不然也好实现的
2019年01月05日 11点01分
@末世无望 嗯,我赞成 你的 想法, 很棒!
2019年01月05日 11点01分
你有在ahk的QQ群么?
2019年01月05日 12点01分
1