[AHK-] IF ELSE 裡可以使用變數判斷按下次數嗎?

作者: licheer (Keep The Faith)   2016-06-19 11:09:24
原本ELECOM滑鼠的軟體就有能自訂按鍵功能
我設定了兩個按鍵,用做放大鏡的開啟及關閉
按鍵5: Win + Numpad+
按鍵6: Win + Esc
但微軟滑鼠的軟體只用一鍵就能做到
剛開始查看AHK的資料
想問看看能不能寫成單用按鍵5就行
例如
Bool bClicked = FALSE;
LBUTTON:
IF bClicked == FALSE THEN
bClicked = TRUE;
Win + Numpad+;
ELSE
bClicked = FALSE;
Win + Esc;
ENDIF
作者: mkz6 ( )   2016-06-19 11:50:00
按鍵5::if t := !tsend 1elsesend 2return
作者: fossil313 (陣雨)   2016-06-20 01:18:00
if後面要直接用變數的話不是要用誇號誇起來嗎?用:=不會跑起來怪怪的嗎 XD
作者: mkz6 ( )   2016-06-20 12:58:00
這個開關寫法的範例有誇號,但沒加也能執行,不知道差在哪?用:=那裡怪我也不知道,反正是範例抄來的,執行上也沒問題XD其實這跟 #1M-IICNw 的 PressKey := ! PressKey 是一樣邏輯第一次按熱鍵時變數還不存在,第二次按熱鍵時變數已存在,然後用if/else判斷執行,原範例 https://goo.gl/i3a6vh
作者: fossil313 (陣雨)   2016-06-20 16:21:00
因為以前在跑的時候以if a := b來說只要b有值if就會判斷為true 即使a實際上和b的值不一樣然後那個範例其實不需要用到:=因為if 後面的判斷式只要加了誇號後裡面都會預設是變數所以if (a = b)跟if a = b是不同的然後記得不佳誇號的話if後面業無法直接用:=得用類似if a = %b%這樣話說發現一件事 這台電腦是以前灌的1.0.47.6版 XD可能AHK_L之後的1.1有不一樣?
作者: mkz6 ( )   2016-06-20 16:46:00
呃…我冒號拿掉改成 if (t = !t) 變成只會判定為false目前是用v1.1.23,話說1.0是快10年前的版本了吧… 囧http://ahkcn.sourceforge.net/docs/Variables.htm看了一下Docs,單詞 "if" 後的第一項為 函數調用或類似 "not" 或 "!" 這樣的運算符時, 開括號可以完全省略.另外~ 保存表達式的結果:要把結果賦值給變量,請使用:=運算符所以沒加冒號才會一直回傳false
作者: fossil313 (陣雨)   2016-06-20 17:35:00
知道我錯在哪惹 其實是可以不用加誇號直接用:=啊 XD一直以來不知哪根筋不對覺得不行...勞煩你打這麼多字真是不好意思 _A_

Links booklink

Contact Us: admin [ a t ] ucptt.com