作者joiedevivre (請不要宣傳罷免蔡正元!!!)
站內EzHotKey
標題[AHK-] 無數字鍵鍵盤 切換數字鍵模式
時間Mon Apr 13 18:29:52 2015
大家好, 可能有人看過沒數字鍵的鍵盤(80%鍵盤)吧
我想為這種鍵盤找回數字鍵模式, 方法是按下某個組合鍵(在這邊是Ctrl+\)
就把m變成0 n變成00 .變成. j變1 k變2 l變3... 等等的以此類推
以下是我目前的code 抱歉語法不太熟寫得很醜也沒有縮排
;NUMBER MODE
;^\::Send {NumLock}
;本來想要用NumState的 不過GetKeyState試半天出不來就先自訂變數
;下面的目的是設定一個變數 在0和1之間切換 是0就是原本的鍵位 是1就輸出數字
^BackSpace::numMode = 0
;還要先用組合鍵initial一個真煩 可惜我不知道讓他直接初始值為0的方法
^\::
numMode := numMode+1
numMode := Mod(numMode, 2)
return
m::
if (numMode=1) {
Send 0
}
else {
Send m
}
return
!n::MsgBox numMode is %numMode% ;查看現在是0還是1
結果按m都會出現71hotkeys have been recieve in the last in 1109ms
http://imgur.com/M2qe5vy
請問是什麼原因? 有更好的寫法嗎? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.215.107
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1428920995.A.5B9.html
1F:推 LPH66: 單回答你的問題: 把 m:: 前面加上 $ 字, 這表示這組 hotkey 04/13 20:01
2F:→ LPH66: 只在使用者被按下時觸發, 不會被 Send 觸發 04/13 20:01
3F:→ LPH66: 初始化的部份直接寫在最上面就好, 記得也要加個 return 04/13 20:02
4F:→ LPH66: 這樣 script 開啟時就會把初始化的部份先執行過 04/13 20:02
5F:→ LPH66: 另外切換可以不用 +1 mod 2 兩步, 用 1 去減只要 1 步就好 04/13 20:02
6F:→ LPH66: 話說回來, 如果你想試 GetKeyState 的話, 要這麼用: 04/13 20:06
7F:→ LPH66: GetKeyState, var, NumLock, T 04/13 20:06
8F:→ LPH66: 這之後 var 如果是 "D" 表示亮燈, "U" 表示燈滅 04/13 20:07
9F:→ LPH66: 主要是那個 , T 各種 Lock 要用這個才可以讀取目前狀態 04/13 20:07
10F:→ LPH66: 否則它讀取的是目前該按鍵是不是正被按著 04/13 20:08
11F:→ joiedevivre: 感謝您的指點! 不懂的部分我再研究看看 04/13 20:31
※ 編輯: joiedevivre (140.116.215.107), 04/13/2015 20:34:06
※ 編輯: joiedevivre (140.116.215.107), 04/13/2015 20:38:20
啊啊 還有如果使用這段code 在大寫鎖定模式下 m j k l等按鍵都還是只會輸出小寫...
是不是要再加入一個if caps on的if 還是有其它解法? 謝謝
※ 編輯: joiedevivre (140.116.192.21), 04/14/2015 11:07:55