Windows 7 Keyboard Repeat Rate and Delay are Reset on Resume from Standby / Sleep

I always keep my keyboard repeat rate at the maximum and the delay at the minimum for optimal keyboard responsiveness.

Under Windows 7 however, I have found that the rate and delay are reset to the defaults (ie the one’s that are set with a fresh Windows installation) whenever the system resumes from sleep and requires opening the keyboard control panel applet (which already shows the desired settings) and manually setting them again by pressing Enter.

I have seen a couple of posts in the Microsoft support forums, but no solutions. Does anyone know of a way to fix this?


I had the same problem. Very irritating. So I wrote a little task bar application that resets the keyboard repeat rate and delay when it's double-clicked. It's supposed to reset the rate and delay when it comes out of sleep but sometimes it works, sometimes it doesn't. But double-clicking the little task bar icon is so easy I haven't bothered debugging it that far.

Download the source here: http://thumpers-hole.net/KeyboardReset.zip
Download just the app here: http://thumpers-hole.net/KeyboardReset-JustExe.zip

Hope this helps.

EDIT: Fixed link. Sorry for the wrong link.


The selected answer by chris did not work on my Win 8 64 bit install. This line can be run from a batch file to reset the rate.

mode con: rate=32 delay=1

I just run it from a shortcut.

Source: https://forums.lenovo.com/t5/IdeaPad-Y-U-V-Z-and-P-series/Re-Y50-Windows-8-Keyboard-response-too-slow-after-coming-back/m-p/1809426

Edit 1

The batch file can be added as a scheduled task to execute after the laptop wakes from sleep. It briefly pops up a command line window but it avoids having to worry about running it manually.

Set up the task with a custom trigger with this filter

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Power-Troubleshooter'] and (Level=4 or Level=0) and (EventID=1)]]</Select>
  </Query>
</QueryList>

Edit 2

The above is for Windows 8. To answer Frank's comment implementing for Windows 7. This might work but I don't have system to test with. I will edit and remove if it does not. Based on this answer https://superuser.com/a/84453/400252

Create a batch file (keyboard.bat) on your PC containing the mode command above.

Open Task scheduler. Right click Task Scheduler Library and select Create Task.

Name the task.

In Trigger tab click New. Begin the task: On an event. Log: Microsoft-Windows-Kernel-Power/Thermal-Operational. Source: Kernel-Power. Event ID 1.

In Actions tab click New. Action: Start a program. Browse to the batch file you created.

In Conditions tab uncheck Stop if the computer switches to battery power.

In Settings tab check Run task as soon as possible after a scheduled start is missed.

I'm not sure if you need to change the security options in the general tab regarding running when logged on or not, or running with highest privileges. I do not have a system to cannot test this with.

If the above does not work then as a work around create a shortcut to the batch file somewhere where you can quickly run it when required such as in the start menu or quicklaunch bar.