作者licheer (Keep The Faith)
看板EzHotKey
標題[AHK-] IF ELSE 裡可以使用變數判斷按下次數嗎?
時間Sun Jun 19 11:09:24 2016
原本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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.234.119.249
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1466305767.A.035.html
1F:推 mkz6: 按鍵5:: 06/19 11:50
2F:→ mkz6: if t := !t 06/19 11:50
3F:→ mkz6: send 1 06/19 11:50
4F:→ mkz6: else 06/19 11:50
5F:→ mkz6: send 2 06/19 11:51
6F:→ mkz6: return 06/19 11:51
7F:→ fossil313: if後面要直接用變數的話不是要用誇號誇起來嗎? 06/20 01:18
8F:→ fossil313: 用:=不會跑起來怪怪的嗎 XD 06/20 01:18
9F:推 mkz6: 這個開關寫法的範例有誇號,但沒加也能執行,不知道差在哪? 06/20 12:58
10F:→ mkz6: 用:=那裡怪我也不知道,反正是範例抄來的,執行上也沒問題XD 06/20 12:59
11F:→ mkz6: 其實這跟 #1M-IICNw 的 PressKey := ! PressKey 是一樣邏輯 06/20 13:00
12F:→ mkz6: 第一次按熱鍵時變數還不存在,第二次按熱鍵時變數已存在, 06/20 13:00
14F:→ fossil313: 因為以前在跑的時候以if a := b來說 06/20 16:21
15F:→ fossil313: 只要b有值if就會判斷為true 即使a實際上和b的值不一樣 06/20 16:21
16F:→ fossil313: 然後那個範例其實不需要用到:= 06/20 16:23
17F:→ fossil313: 因為if 後面的判斷式只要加了誇號後裡面都會預設是變數 06/20 16:24
18F:→ fossil313: 所以if (a = b)跟if a = b是不同的 06/20 16:24
19F:→ fossil313: 然後記得不佳誇號的話if後面業無法直接用:= 06/20 16:25
20F:→ fossil313: 得用類似if a = %b%這樣 06/20 16:26
21F:→ fossil313: 話說發現一件事 這台電腦是以前灌的1.0.47.6版 XD 06/20 16:28
22F:→ fossil313: 可能AHK_L之後的1.1有不一樣? 06/20 16:29
23F:推 mkz6: 呃…我冒號拿掉改成 if (t = !t) 變成只會判定為false 06/20 16:46
24F:→ mkz6: 目前是用v1.1.23,話說1.0是快10年前的版本了吧… 囧 06/20 16:46
26F:→ mkz6: 看了一下Docs,單詞 "if" 後的第一項為 函數調用 06/20 16:58
27F:→ mkz6: 或類似 "not" 或 "!" 這樣的運算符時, 開括號可以完全省略. 06/20 16:58
28F:→ mkz6: 另外~ 保存表達式的結果:要把結果賦值給變量,請使用:=運算符 06/20 16:59
29F:→ mkz6: 所以沒加冒號才會一直回傳false 06/20 16:59
30F:→ fossil313: 知道我錯在哪惹 其實是可以不用加誇號直接用:=啊 XD 06/20 17:35
31F:→ fossil313: 一直以來不知哪根筋不對覺得不行...勞煩你打這麼多字 06/20 17:35
32F:→ fossil313: 真是不好意思 _A_ 06/20 17:35