[AHK-] 腳本內函數順序的問題求解惑

看板EzHotKey作者 (Nothing)時間2年前 (2021/08/15 17:22), 2年前編輯推噓2(2015)
留言17則, 2人參與, 2年前最新討論串1/1
毫無基礎自行研究亂寫亂用 邏輯傷眼還請見諒 自己常用的腳本裡面有兩段 ;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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.226.167 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/EzHotKey/M.1629019345.A.E2B.html ※ 編輯: onlyAPU (123.192.226.167 臺灣), 08/15/2021 17:33:02

08/15 17:37, 2年前 , 1F
我猜是 #ifwinactive 的問題?
08/15 17:37, 1F

08/15 17:37, 2年前 , 2F
它宣告後直到取消為止都會作用, 取消方式是不加參數
08/15 17:37, 2F

08/15 17:39, 2年前 , 3F
然後 AHK 裡的 {} 好像只有 function 才需要
08/15 17:39, 3F

08/15 17:40, 2年前 , 4F
hotkey/hotstring 不需要 {} 也行, 所以以你的用例來說
08/15 17:40, 4F

08/15 17:40, 2年前 , 5F
Return 擺哪裡都沒差的樣子
08/15 17:40, 5F

08/15 17:42, 2年前 , 6F
啊, if 敘述可能也需要, 但 hotkey/hotstring 是不用沒錯
08/15 17:42, 6F

08/15 17:48, 2年前 , 7F
謝謝回答,目前是把2移動到整個腳本的最後面,因為發現
08/15 17:48, 7F

08/15 17:49, 2年前 , 8F
他也會把我寫的映射按鍵 prt+下= END給吃掉,但是其他又
08/15 17:49, 8F

08/15 17:49, 2年前 , 9F
不會,都執行正常,想不通這個道理
08/15 17:49, 9F

08/15 18:09, 2年前 , 10F
那看來真的跟 #ifwinactive 有關了
08/15 18:09, 10F

08/15 18:09, 2年前 , 11F
上面說取消方式是不加參數, 就是單獨一行寫 #ifwinactive
08/15 18:09, 11F

08/15 18:10, 2年前 , 12F
後面什麼都不加, 這樣在它後面的東西應該就能正常了
08/15 18:10, 12F

08/15 18:11, 2年前 , 13F
08/15 18:11, 13F

08/15 18:31, 2年前 , 14F
謝謝回覆,剛剛把ifwinactive的參數取消,真的可以作用
08/15 18:31, 14F

08/15 18:33, 2年前 , 15F
但那串想限定在指定程式才能作用,請問有其他方法嗎?
08/15 18:33, 15F

08/15 18:34, 2年前 , 16F
我耍蠢了,我看懂了,最後再加上#ifWinactive就可以了
08/15 18:34, 16F

08/15 18:34, 2年前 , 17F
感謝,原來是這樣,那我要把其他部分都加上去
08/15 18:34, 17F
文章代碼(AID): #1X6DpHuh (EzHotKey)
文章代碼(AID): #1X6DpHuh (EzHotKey)