地圖上限鎖定鑰匙可以逃脫Windows系統上的鍵或任何鍵的任何鍵。
除了記錄UNCAP在Windows上的工作原理外,此讀數還包含有關如何在Linux和Mac上重新啟動鍵的詳細文檔。
以下列表簡要描述了UNCAP的一些功能。
Windows上還有其他幾種方法和工具可將一個鍵映射到另一個鍵。但是他們似乎都沒有上面列舉的所有五個功能。例如,編輯Scancode MAP註冊表值需要在每次更改後重新啟動Windows系統。另一方面,Autohotkey需要編寫一個附加的腳本文件。因此,編寫UNCAP以支持上述所有五個功能。
UNCAP是單文件可執行文件: uncap.exe 。
運行它的最簡單方法是下載並雙擊它。沒有顯示輸出窗口。它在後台運行。一旦運行,每當按下蓋帽鎖定鍵,它就會通過UNCAP轉換為逃生鍵。
可以通過指定自定義映射來覆蓋CAPS鎖定鍵的默認映射,以逃避密鑰,但是要這樣做,必須使用命令提示符或Windows Run Run對話框的參數運行UNCAP。以下步驟顯示瞭如何使用uncap.exe映射蓋帽鍵到左控制鍵。
將uncap.exe複製到Windows PATH變量中指定的目錄。 C:Windows是一個非常方便的位置,可以將此文件複製到。
通過按Windows Logo Key + R來啟動Windows運行對話框。
輸入以下命令。
uncap 0x14:0xa2
按確定按鈕。這將啟動UNCAP。不會顯示輸出窗口。 UNCAP將在後台運行。每當按下CAPS鎖定鍵時,UNCAP都會將其轉換為左控制鍵。
要終止UNCAP,請運行以下命令。
uncap -k
在上述步驟中,CAPS鎖定鍵通過指定0x14:0xa2作為UNCAP的參數來映射到左控制鍵。 CAPS鎖定的虛擬鍵代碼為0x14 ,控制密鑰的虛擬鍵代碼為0xa2 。因此,參數0x14:0xa2映射帽鎖定鍵以控制密鑰。
可以在https://msdn.microsoft.com/library/windows/desktop/dd375731.aspx上找到每個密鑰的虛擬鍵代碼列表。
當UNCAP不用任何參數運行時,它將映射限制鎖定鍵以逃脫鍵。它可以使用參數運行,以將上限鎖定密鑰映射到任何密鑰,任何密鑰的任何鍵,或禁用任何密鑰。
每個參數都是從https://msdn.microsoft.com/library/windows/desktop/dd375731.aspx發出的結腸分離的虛擬鍵代碼。
可以將虛擬鍵代碼指定為上述URL中提到的十六進制整數,也可以將其等效十進製表示法指定。這些詳細信息在下面的示例列表中說明。
地圖上限鎖定鍵逃脫鑰匙。
uncap
交換蓋蓋鑰匙用逃生鍵鎖定。
uncap 0x1b:0x14
CAPS鎖定密鑰默認為逃脫密鑰。上面的命令映射將鑰匙逃到蓋帽鎖定鍵,從而有效地交換了兩個密鑰。
十六進制整數對案例不敏感,因此以下命令等同於先前的命令。
uncap 0x1B:0x14
虛擬鍵代碼可以用十進製表示法指定,因此以下命令等同於上一個命令。
uncap 27:20
地圖蓋鎖定鍵左控制鍵。
uncap 0x14:0xa2
交換蓋鎖定鍵並左控制鍵。
uncap 0x14:0xa2 0xa2:0x14
此示例表明,可以指定多個參數將多個鍵映射到其他鍵。
這是將多個鍵映射到其他鍵的另一個示例。以下命令映射蓋鎖定鑰匙左控制鍵,左控制鍵,以逃脫鍵並逃脫蓋帽鎖定鍵。
uncap 0x14:0xa2 0xa2:0x1b 0x1b:0x14
如果將鍵映射到自身,則不會發生映射。這可以用來覆蓋映射蓋鎖定密鑰的默認行為以逃脫鍵,並在將另一個鍵映射到某個鍵時將其拆開。這是一個示例,該示例可以解開鎖定密鑰並映射F1鍵以逃脫鍵。
uncap 0x14:0x14 0x70:0x1b
將鍵映射到另一個鍵,然後按下該鍵時,UNCAP將其轉換為通過合成新的擊鍵並將其註入系統的鍵將其映射到的鍵。但是,當鍵映射到自身並按下鍵時,它被忽略了,因此不會發生新的擊鍵的翻譯或綜合。
如果鍵映射到0,則禁用鍵。這是一個完全禁用CAPS鎖定鍵的示例。
uncap 0x14:0
uncap運行而無需默認顯示控制台。要終止可能正在運行的另一個UNCAP實例,請使用-k或--kill選項。
uncap -k
上述命令殺死了有或沒有控制台的所有其他UNCAP的實例。
要使用控制台運行UNCAP,請使用-c或--console選項。
uncap -c
當UNCAP在這樣的控制台中運行時,可以通過按Ctrl + C終止它。
要在調試模式下運行UNCAP,請使用-d或--debug選項。
uncap -d
調試輸出包含一行輸出,其中包含有關鍵的每條按下的詳細信息或鍵發布的詳細信息。
要將擊鍵詳細信息記錄到文件中,請使用-f或--file選項。
uncap -f C:keys.txt
僅使用此選項,UNCAP就會在後台運行,並將鍵鍵詳細信息記錄到指定的文件中。可以將此選項與-c或-d組合,以分別在控制台上運行UNCAP或在控制台上打印調試輸出。
請參閱完整的用法詳細信息以及支持的選項。
uncap -h
使用Windows 10上的Microsoft Edge Web瀏覽器下載UNCAP時,有時無法映射鍵。
以下措施發現解決該問題是不成功的:
右鍵單擊uncap.exe ,然後選擇屬性,然後選擇Unblock ,然後單擊OK不會解決問題。
右鍵單擊uncap.exe ,然後選擇屬性,然後轉到“安全”選項卡,然後單擊“編輯” ,然後刪除以下兩個帳戶無法解決問題:
Unknown Account(S-1-15-2-3624051433-2125758914-1423191267-1740899205-1073925389-3782572162-737981194)
Unknown Account(S-1-15-3-3624051433-2125758914-1423191267-1740899205-1073925389-3782572162-737981194)
這些帳戶會自動添加到使用Microsoft Edge下載的文件中。
已經發現以下解決方案成功解決了該問題:
將uncap.exe複製到同一目錄中的新文件。當運行時,新文件成功地重新刪除鍵。最後,刪除下載的uncap.exe ,然後將新文件重命名為uncap.exe ,並正常使用。
將uncap.exe複製到其他目錄。當運行成功重新鍵重新鍵時,新的複製文件。
Microsoft Edge Microsoft Edge 44.17763.1.0在Windows 10 Pro上觀察到了這個問題。
還有其他工具和方法可用於將一個鍵映射到Windows,Linux和Mac上的另一個鍵。本節介紹了一些這樣的工具和方法。
在不使用任何其他軟件的情況下將鍵映射到Windows中的另一個鍵的一種方法是編輯註冊表以在“ HKLM System CurrentControlset Control Control Control 鍵盤佈局”註冊表中添加稱為“ Scancode Map”的值。
例如,要映射蓋帽鎖定鍵以逃脫密鑰,請創建一個註冊條目文件,即以REG為擴展程序的文件,例如UNCAP.REG,並帶有以下內容。
REGEDIT4
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00
然後保存文件。然後雙擊此文件以將其添加到Windows註冊表中。然後重新啟動Windows系統。重新啟動後,只要按下蓋帽鍵,它就會像逃生鍵一樣起作用。
可以通過在命令提示符中運行以下命令來添加相同的註冊表值。
reg add "HKLMSYSTEMCurrentControlSetControlKeyboard Layout" /v "Scancode Map" /t REG_BINARY /d 00000000000000000200000001003a0000000000
註冊表值中的十六進制代碼是掃描代碼圖。掃描代碼圖的格式在https://msdn.microsoft.com/library/windows/hardware/hardware/jj128267.aspx#scan_code_code_mapper_mapper_for_keykeyboards中詳細描述。
以下命令可用於查看此註冊表值。
reg query "HKLMSYSTEMCurrentControlSetControlKeyboard Layout" /v "Scancode Map"
以下命令可用於刪除此註冊表值。
reg delete "HKLMSYSTEMCurrentControlSetControlKeyboard Layout" /v "Scancode Map"
儘管此方法的優勢是它不需要其他軟件,但此方法的缺點是它要求在註冊表的每次更改後重新啟動系統。
有一個稱為SharpKeys的工具,帶有圖形用戶界面來管理此註冊表值。但是,在用夏普犬進行的每次更改之後,仍然需要重新啟動。
對於稱為Autohotkey的Windows,有一種相當複雜的腳本語言,可用於將一個鍵映射到另一鍵,以及其他許多方面。
使用Autohotkey將一個鍵映射到另一個鍵非常簡單。例如,在安裝Autohotkey之後,要映射蓋帽鎖定鍵以逃脫鍵,創建一個autohotkey腳本,即以AHK為擴展名的文件,例如uncap.ahk,則具有以下內容。
CapsLock::Esc
然後保存文件。然後雙擊此文件以使用此腳本運行Autohotkey。完成此操作後,只要按下蓋帽鎖定鍵,就會翻譯以逃脫鍵。 Autohotkey圖標出現在通知區域(系統托盤)中。要停止它,請右鍵單擊圖標,然後選擇“退出”。
此方法具有一個優勢,即它不需要重新啟動系統。但是,Autohotkey是一種腳本語言,可用於執行許多其他事情,例如定義熱鍵(快捷鍵),熱弦(自動固定),宏(腳本動作)等。
在Linux上, setxkbmap命令可用於將一個鍵映射到X Window系統中的另一鍵。例如,以下命令映射帽鎖定鍵以逃脫鍵。
setxkbmap -option caps:escape
在.lst文件中,可以在/usr/share/x11/xkb/規則中找到選項列表以及每個選項的簡短說明,其名稱與當前XKB規則相同。當前的XKB規則以及當前的映射選項可以在此命令的輸出中找到。
setxkbmap -query
例如,如果將“ evdev”顯示為當前規則,則請參見/usr/share/x11/xkb/rules/evdev.lst可用選項列表以及每個選項的簡短描述。
在上述命令的輸出中,以“規則:”開頭的線路在上述命令的輸出中顯示了當前的XKB規則。鍵映射選項顯示在以上命令的輸出中以“選項:”開頭的行中顯示。如果沒有這樣的行,則沒有設置鍵映射選項。
以下命令刪除任何密鑰映射選項。
setxkbmap -option
在Linux上,還有另一個稱為xmodmap的命令,可以用來將一個鍵映射到X Window系統中的另一個鍵。但是,現在認為該命令過時。使用它也有點笨拙,尤其是在刪除鑰匙映射的同時。上一節中描述的setxkbmap命令是X窗口系統中映射密鑰的首選方法。但是,本節介紹瞭如何使用xmodmap將一個鍵映射到另一個鍵,因為此方法仍在使用,儘管其使用逐漸消失。例如,本節介紹瞭如何映射蓋帽鎖定鍵以逃脫密鑰。
在執行密鑰映射之前,需要在X窗口系統中找到CAPS鎖定密鑰的密鑰代碼。這在重新映射密鑰映射時很有用。這是獲取CAPS鎖定密鑰的密鑰代碼的命令。
xmodmap -pke | grep Caps_Lock
對於PC鍵盤,鍵代碼通常為66 。
以下命令映射蓋鎖定鍵以逃脫密鑰。
xmodmap -e "remove Lock = Caps_Lock" -e "keysym Caps_Lock = Escape"
這是另一個命令,該命令還可以映射蓋帽鍵,如果蓋帽鎖定的密鑰代碼為66。此命令使用keycode代替keysym 。
xmodmap -e "remove Lock = Caps_Lock" -e "keycode 66 = Escape"
以下兩個命令顯示當前詳細信息。
xmodmap -pm -pke
以下命令撤消了映射。
xmodmap -e "keycode 66 = Caps_Lock" -e "add Lock = Caps_Lock"
請注意, keycode在上述命令中使用。如果keysym Escape = Caps_Lock在上面的命令中使用,則將Caps Lock鍵像Caps Lock這樣的功能,它也將改變Escape鍵的行為,例如Caps Lock。使用keycode 66 = Caps_Lock確保僅恢復CAPS鎖定密鑰的行為。
在Linux上,可以使用loadKeys命令將一個鍵映射到控制台中的另一鍵。本節介紹瞭如何映射蓋帽鎖定鍵以逃脫鑰匙。本節中的所有命令必須作為root或superuser運行。
在執行密鑰映射之前,需要在控制台中找到CAPS鎖定密鑰的密鑰代碼。在復制密鑰映射時,這也將很有用。
這是一種在控制台中查找CAPS鎖定密鑰的密鑰代碼的快速方法。
dumpkeys | grep -E "CtrlL_Lock|Caps_Lock"
在本節中,我們假設CAPS鎖定密鑰的密鑰代碼為58 ,並且映射到Caps_Lock密鑰,這在大多數係統上確實是正確的。在基於Debian的系統上,可以將關鍵代碼58映射到CtrlL_Lock ,以圍繞Debian Bug 514464和內核BUG 7746工作。
以下命令映射蓋鎖定鍵以逃脫密鑰。
(dumpkeys | grep keymaps; echo keycode 58 = Escape) | loadkeys
以下命令撤消了映射。
(dumpkeys | grep keymaps; echo keycode 58 = Caps_Lock) | loadkeys
由於MacOS Sierra版本10.12.1,因此很容易映射蓋帽鎖定以通過系統首選項逃脫。執行以下步驟進行操作。
在OS X中,通過系統首選項可用的映射選項非常有限。例如,它不允許將蓋鎖定映射到逃脫。因此,通常必須安裝其他軟件以在OS X中映射密鑰。
SEIL是一個流行的用於將一個鍵映射到另一個鍵的工具。這是我美麗的女友和妻子的一篇文章,描述瞭如何使用SEIL映射帽子鎖定以在OS X上逃脫:http://sunainapai.in/blog/map-caps-caps-caps-lock-to-to-escape-escape-escape-on-mac-os-os-x/。
這是有關此項目的有用鏈接的列表。
這是免費的開源軟件。您可以根據麻省理工學院許可條款使用,複製,修改,合併,發布,分發,轉銷和/或出售其副本。有關詳細信息,請參見License.MD。
該軟件是“原樣”提供的,沒有任何形式的明示或暗示保修。有關詳細信息,請參見License.MD。
要報告錯誤,建議改進或提出問題,請訪問https://github.com/susam/uncap/issues。