# UMSS Class
1. 實例類
2. 讓 Tab/Space 等,并非修飾鍵的按鍵,擁有修飾鍵的類似效果。
## 方法 Method
### __New(key)
**UMSS組合按鍵的特性**
構造中會執行 this.registerNewKey()。該函數會讓按鍵「修飾化」,按鍵會變成「單發」。
如果沒有按下「組合熱鍵」,原按鍵會在Up之后發送;否則就觸發「組合按鍵」的FuncObj,原按鍵不發送。
這有利于對其設置組合熱鍵。
**延遲問題**
任何修飾鍵方案,都會導致原按鍵發送變慢,這是很難避免的。
設置 Space 等按鍵的時候,打字會有拖沓的感覺,注意取舍。
### register(keyName,theFunc,Options:="")
- keyName :組合中,另一個按鍵的keyName
- theFunc : 組合按鍵觸發的Func
- Options:HotKey 的設置,詳見AutoHotKey幫助文件
務必要通過這種方法注冊。不要直接使用語境約束,會導致組合按鍵出現BUG。
在不同的 AHK 程序中注冊熱鍵,會出現競爭關系,誰后注冊誰生效,而其余的則失效。
在同一 AHK 程序中注冊熱鍵時,會將對象保存在 UMSS 類的靜態 keys Map 中,如果注冊熱鍵時,發現之前已經注冊,那么就會直接返回之前的 Object,而不會重新注冊。這是為了解決「UMSS多次申請同一熱鍵時,除第一次申請外,目標修飾鍵會在按下時發送的BUG」。
### Unregister(keyName)
刪除某個注冊熱鍵
- keyName :組合中,另一個按鍵的keyName
### destroy()
刪除所有注冊過的熱鍵
示例:注冊組合熱鍵 Tab & j 和 Tab & .
```autohotkey
class Print{
P1(){
LogPrintln(A_ThisFunc,A_LineFile "(" A_LineNumber ")" " : " "A_ThisFunc >>> `r`n")
}
P2(){
LogPrintln(A_ThisFunc,A_LineFile "(" A_LineNumber ")" " : " "A_ThisFunc >>> `r`n")
}
} ;---------class Print End
TabUMSS := new UMSS("Tab")
TabUMSS.register("j",new Method(Print.P1,Print))
TabUMSS.register(".",new Method(Print.P2,Print))
```
- 指南 (README)
- 常見問題 (FAQ)
- 更新歷史(CHANGELOG)
- 貢獻指南 (CONTRIBUTING)
- 開源協議 (LICENCE)
- 鳴謝 (ACKNOWLEDGEMENT)
- 文檔模板 (TEMPLATE)
- 新手指南(BEGINNER_GUIDE)
- 語法高亮(HIGHLIGHTING)
- Class
- _Container
- _EX
- _List
- _Map
- _Win
- _Wins
- BeanEnum
- HotString
- HotStringMaps
- InvisibleCharacter
- JSON
- JsonFile
- Method
- ObservableMap
- ObservableObj
- WinEvent
- Timer
- MesToast
- APPLocker
- AutoClassify
- Everything
- Function
- Ini
- AutoInputBox
- ParaChecker
- PathObj
- RunningSpeedTest
- Script
- Switcher
- Stack
- TimeChecker
- Type
- UMSS
- Function
- assert()
- Analyze()
- AnalyzeClassName()
- AutoBind()
- bulkMoveFile()
- ExcelToList()
- getClass()
- getCurrentTime()
- getFunc()
- Instanof()
- InstanceCheck()
- loadMethod()
- LogPrintln()
- rawCall()
- RandomStr()
- showObj()
- Type()
- throwWithSt()
- UseCMD()
- ObjDump()
- Test
- ObjLoad()
- StringMethod
- TypeClass
- MapFactory()