Решение называется AutoHotkey, и руководство для начинающих можно найти здесь .
Это мой сценарий:
#Persistent SetTimer, Main, 1 return Main: if (GetKeyState("Up", "P")) MouseMove, 0, -25, 0, R if (GetKeyState("Down", "P") or GetKeyState("NumpadClear", "P")) MouseMove, 0, 25, 0, R if (GetKeyState("Right", "P")) MouseMove, 50, 0, 0, R if (GetKeyState("Left", "P")) MouseMove, -50, 0, 0, R return
NumpadClear - это средний ключ цифровой клавиатуры, поэтому он позволяет использовать шаблон WASD для цифровой клавиатуры (8456).