[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