How can I disable the F Lock key on my Microsoft Natural Ergonomic Keyboard 4000 (v1.0)?

I don't want to physically disable the key so I would like a software fix. The keyboard is connected by USB and does not have a PS/2 connector.


Jason Tsang maintains a registry edit for Intellitype Pro keyboards to disable the F-lock key.

  • Looks good, but OMG, what a dirty hack! IntelliType's F key fudge is essentially a set of per-application macros. jtsang.mvps.org/usb_intellitype.html Aug 3 '10 at 16:30
  • @Damian Powell - yeah it's not ideal, but the Fkey is a mess anyways.
    – JNK
    Aug 3 '10 at 16:37
  • Glad it helped!
    – JNK
    Aug 3 '10 at 18:13
  • 1
    Good answer. I have been using this for years. This time around, I used Damian's script below, which I highly recommend. That way, you won't revert your custom key bindings to what they were in 2006.
    – Neil
    Mar 25 '11 at 20:20
  • 4
    That link is dead.
    – BornToCode
    Aug 2 '16 at 12:41

The answer from @JNK led me to the URL below which describes how to simulate disabling the F Lock key by changing the configuration of IntelliType Pro.

The files on that page are specific to an older version of IntelliType and so I was apprehensive about using them incase I lost some other functionality from IntelliType. However, by comparing the original and modified files supplied there, I was able to write the following PowerShell 2 script which will make the equivalent changes to the commands.xml file for whichever version of IntelliType you happen to have installed.

If you don't know anything about PowerShell, then will probably be useless to you. If you do understand PowerShell - enjoy!

#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


    $new = $xml.CreateElement($elemName)

    $new.SetAttribute("Type", "5")
    $new.SetAttribute("KeySeq", $fkey)

    $allAppsStd.AppendChild($new) | out-null

  • YOU ROCK! This needs to be run from a PowerShell prompt with administrator rights, and the appropriate process bit-width (32-bit or 64-bit... what's the right word to use). May 10 '12 at 20:15
  • 1
    @emddudley Is the phrase you're looking for "word length"? May 12 '12 at 0:15

The advice on Jason's Intellitype page didn't work on Windows 7. I re-mapped the functions of the keys (help, undo, etc.) to the actual Function keystroke using the keyboard software provided. Hit configure, choose from list of commands, keystroke... the the required F key when the window pops, & ok.


Put F-lock into the setting you want, then pop the key off. The keys are designed to come out without much effort, and will snap back in with no problem.

The keyboard will also remember the state of F-lock even after its powered down.

  • 1
    This method also works on any operating system and gives the F12 key back its proper place as the right most of the function keys, making it easy to find without looking. Apr 24 '15 at 15:26

I avoided the registry hack by working with the "Microsoft Mouse and Keyboard Centre" for Windows 10, such as it is. Too bad it won't configure/disable the F Lock key. That would've been too sensible.

  1. Create 12 macros "Macro F1" thru "Macro F12" with keystrokes F1 thru F12. (Painfully repetitive, but easy.)
  2. Assign Help to "Macro F1".
  3. Assign Undo to "Macro F2".
  4. Assign Redo to "Macro F3".
  5. ...
  6. Assign Print to "Macro F12".

Done. Now the function keys act as function keys regardless of the F Lock key.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.