如何禁用 Natural Keyboard 4000 上的 F Lock 键?

如何禁用 Natural Keyboard 4000 上的 F Lock 键?

如何禁用 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 键。那太明智了。

  1. 使用按键 F1 到 F12 创建 12 个宏“宏 F1”到“宏 F12”。(虽然重复很痛苦,但很容易。)
  2. 将帮助分配给“宏 F1”。
  3. 将撤消指定给“宏 F2”。
  4. 将重做分配给“宏 F3”。
  5. ...
  6. 将打印分配给“宏 F12”。

完成。现在,无论 F Lock 键如何,功能键都可以用作功能键。

相关内容