I recently <a href="/2014/08/25/switching-end-and-insert-key-on-the-lenovo-yoga/">lamented about switching two keys on my new Lenovo Yoga</a>. Big problem: In my office, I attach that notebook to a docking station and to that docking station I attach a <a href="http://www.daskeyboard.com/" target="_blank">keyboard</a>. On that keyboard, all keys are precisely the way I want them to be. Therefore, I do <i>not</i> want to switch the <b>Insert</b> and <b>End</b> keys when I am docked. I ended up writing a little batch script based on <a href="https://code.google.com/p/killkeys/wiki/ScancodeMap" target="_blank">this nice google code wiki entry</a> for the registry update and <a href="http://stackoverflow.com/a/24665214/1578458" target="_blank">this stackexchange answer to elevate the batch script</a>:
```bash
@ECHO OFF
NET FILE 1>NUL 2>NUL
if '%ERRORLEVEL%' == '0' goto run
powershell "saps -filepath %0 -verb runas" >nul 2>&1
goto eof
:run
REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" ^
/v "Scancode Map" >nul 2>&1
IF '%ERRORLEVEL%' == '0' goto remove
<nul set /p ="> adding scancode map "
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" ^
/v "Scancode Map" /t REG_BINARY /f ^
/d 00000000000000000300000052E04FE04FE052E000000000 >nul 2>&1
IF '%ERRORLEVEL%' == '0' goto success
goto fail
:remove
<nul set /p ="> removing scancode map "
REG DELETE "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" ^
/v "Scancode Map" /f >nul 2>&1
IF '%ERRORLEVEL%' == '0' goto success
goto fail
:fail
echo failed.
pause
goto eof
:success
echo succeeded.
pause
```
Sadly, it always requires a reboot for the changes to take effect.
5 Replies to “Switching the switching of Keys!”