[AHK-] 脚本内函数顺序的问题求解惑

楼主: onlyAPU (Nothing)   2021-08-15 17:22:23
毫无基础自行研究乱写乱用
逻辑伤眼还请见谅
自己常用的脚本里面有两段
;1
;;今天日期
::d1::
{
d = %A_YYYY%%A_MM%%A_DD%
Send %d%_
}
return
;2
#ifwinactive ahk_exe Wox.exe
::lr::
{
__title := "卖价"
__text := "输入卖价 A"
InputBox, A,%__title%,%__text%,,400,150
__title := "成本"
__text := "输入成本 B"
InputBox, B,%__title%,%__text%,,400,150
myvar1 := A-B
myvar2 := myvar1/A
Msgbox % "利润" . myvar2
}
Return
发现如果是 1放在2之前,#1就可以正常作用
但是如果反过来 2放在1之前,1就无法作用
想请问
1.哪里写法有问题呢
2.另外想请问return的正确位置应该放在哪?

(
return
)
还是
(
)
return
作者: LPH66 (-6.2598534e+18f)   2021-08-15 17:37:00
我猜是 #ifwinactive 的问题?它宣告后直到取消为止都会作用, 取消方式是不加参数然后 AHK 里的 {} 好像只有 function 才需要hotkey/hotstring 不需要 {} 也行, 所以以你的用例来说Return 摆哪里都没差的样子啊, if 叙述可能也需要, 但 hotkey/hotstring 是不用没错
楼主: onlyAPU (Nothing)   2021-08-15 17:48:00
谢谢回答,目前是把2移动到整个脚本的最后面,因为发现他也会把我写的映射按键 prt+下= END给吃掉,但是其他又不会,都执行正常,想不通这个道理
作者: LPH66 (-6.2598534e+18f)   2021-08-15 18:09:00
那看来真的跟 #ifwinactive 有关了上面说取消方式是不加参数, 就是单独一行写 #ifwinactive后面什么都不加, 这样在它后面的东西应该就能正常了大概像这样 https://i.imgur.com/uE5dmXc.png
楼主: onlyAPU (Nothing)   2021-08-15 18:31:00
谢谢回复,刚刚把ifwinactive的参数取消,真的可以作用但那串想限定在指定程式才能作用,请问有其他方法吗?我耍蠢了,我看懂了,最后再加上#ifWinactive就可以了感谢,原来是这样,那我要把其他部分都加上去

Links booklink

Contact Us: admin [ a t ] ucptt.com