如何禁用 Microsoft Natural Ergonomic Keyboard 4000 (v1.0) 上的 F Lock 键?
我不想物理禁用该键,所以我想通过软件修复。键盘通过 USB 连接,没有 PS/2 连接器。
答案1
Jason Tsang 认为注册表编辑用于 Intellitype Pro 键盘以禁用 F-lock 键。
答案2
@JNK 的回答让我找到了下面的 URL,其中描述了如何通过更改 IntelliType Pro 的配置来模拟禁用 F Lock 键。
该页面上的文件特定于旧版本的 IntelliType,因此我担心使用它们会丢失 IntelliType 的其他功能。但是,通过比较那里提供的原始文件和修改后的文件,我能够编写以下 PowerShell 2 脚本,它将对您安装的任何版本的 IntelliType 的 command.xml 文件进行等效更改。
如果你对 PowerShell 一无所知,那么这对你可能毫无用处。如果你做了解 PowerShell——享受!
#requires -version 2
set-strictmode -version latest
$keyCodes = @(302, 203, 204, 307, 308, 309, 900, 901, 902, 401, 311, 310)
$matchRegex = '^\s*<C({0})\s.*$' -f ($keyCodes -join '|')
# This used to be:
# $filename = "$env:ProgramFiles\Microsoft IntelliType Pro\commands.xml"
$fileName = "$env:ProgramFiles\Microsoft Mouse and Keyboard Center\commands.xml"
$backupFileName = $fileName -replace "\.xml$", ".original.xml"
if (-not (test-path $backupFileName)) {
write-verbose "Backing up commands.xml"
cp $fileName $backupFileName
}
$file = (get-content $fileName) -replace $matchRegex, ""
$xml = [xml]$file
$allAppsStd = $xml.DPGCmd.ALL.Application |
?{ $_.UniqueName -eq "StandardSupport" }
$nextFKey = 1
$keyCodes | %{
$elemName = "C{0}" -f $_
$fkey = "F{0}" -f $nextFKey
$nextFKey++
$new = $xml.CreateElement($elemName)
$new.SetAttribute("Type", "5")
$new.SetAttribute("KeySeq", $fkey)
$allAppsStd.AppendChild($new) | out-null
}
$xml.Save($fileName)
答案3
Jason 的建议Intellitype 页面在 Windows 7 上不起作用。我Function
使用提供的键盘软件将按键的功能(帮助、撤消等)重新映射到实际按键。点击配置,从命令列表中选择,按键...当窗口弹出时,选择所需的 F 键,然后确定。
答案4
我通过使用 Windows 10 的“Microsoft 鼠标和键盘中心”避免了注册表黑客攻击。可惜它不会配置/禁用 F Lock 键。那太明智了。
- 使用按键 F1 到 F12 创建 12 个宏“宏 F1”到“宏 F12”。(虽然重复很痛苦,但很容易。)
- 将帮助分配给“宏 F1”。
- 将撤消指定给“宏 F2”。
- 将重做分配给“宏 F3”。
- ...
- 将打印分配给“宏 F12”。
完成。现在,无论 F Lock 键如何,功能键都可以用作功能键。