This version works for me. Try it out.
The toggle button needs to be pressed twice, before it starts working properly. No idea why.
But you can use AutoHotkey for other purposes as well.
; UP UP UP UP UP UP UP UP UP UP UP UP UP UP UP
$up::
If SwitchKeys = 1
SendInput {w down}
Else
SendInput {Up down}
Return
$up up::
If SwitchKeys = 1
SendInput {w up}
Else
SendInput {Up up}
Return
; UP UP UP UP UP UP UP UP UP UP UP UP UP UP UP
; LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT
$Left::
If SwitchKeys = 1
SendInput {a down}
Else
SendInput {Left down}
Return
$Left up::
If SwitchKeys = 1
SendInput {a up}
Else
SendInput {Left up}
Return
; LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT
; DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN
$Down::
If SwitchKeys = 1
SendInput {s down}
Else
SendInput {Down down}
Return
$Down up::
If SwitchKeys = 1
SendInput {s up}
Else
SendInput {Down up}
Return
; DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN
; RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIG
$Right::
If SwitchKeys = 1
SendInput {d down}
Else
SendInput {Right down}
Return
$Right up::
If SwitchKeys = 1
SendInput {d up}
Else
SendInput {Right up}
Return
; RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIG
; UP,LEFT,DOWN,RIGHT UP,LEFT,DOWN,RIGHT UP,LEFT
#IfWinActive
; Changes the WASD keys to ARROW keys. Press "Pause" to toggle this behavior On/Off.
This is simple version (already mentioned in previous post) with Pause as toggle.
The downside is, that since it suspends all hotkeys, you cannot use AutoHotkey for other hotkeys.
; Set which keys should be switched.
$w::Up
$Up::w
$a::Left
$Left::a
$s::Down
$Down::s
$d::Right
$Right::d
#IfWinNotActive
; Changes the WASD keys to ARROW keys. Press "Pause" to toggle this behavior On/Off.