作者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/cn.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