las teclas Windows+D, quisiera saber como desactivarlas y que no funcionen de ninguna manera, ya sea editando algo o algún programa.
Algo que no todo el mundo sabe es que las teclas de un teclado se pueden remapear mediante el valor
ScanCode en la clave de registro
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout y
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout del registro de Windows. Para evitar el uso de una tecla, sencillamente puedes modificar ese valor del registro para desactivar/invalidar una tecla específica.
Dicho valor de registro probablemente no existirá en ninguno de tus equipos, puesto que nunca habrás asignado un mapeo de teclas, así que primero debes crear el valor y seguir la estructura de datos con la que se ha definido:
http://smallvoid.com/article/winnt-scancode-map.htmlPara asignar un mapeo de teclas personalizado hay aplicaciones gratuitas como
SharpKeys que te ayudarán a hacerlo de forma guiada:
Para el caso que nos concierne, desactivar las teclas de Windows (izquierda, y derecha), puedes instalar el siguiente script de registro en tus equipos:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,5c,e0,00,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,5c,e0,00,00,00,00
( Nótese que es necesario reiniciar sesión/reiniciar el PC para que los cambios tengan efecto. )
Y en el caso de que quieras deshacer los cambios del remapeo de teclas entonces simplemente puedes eliminar los valores creados. Si deseas hacerlo de forma automatizada puedes utilizar este otro script de registro:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout]
"Scancode Map"=-
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=-
Para que un usuario pueda bypassear esta técnica, primero debe conocer esta funcionalidad de Windows para ubicar el valor de registro y eliminarlo (y posteriormente reiniciar sesión o reiniciar el PC), cosa improbable en la media común de usuarios, pero de todas formas para una protección adicional siempre puedes activar una política global de usuario en Windows para impedir el uso de las teclas de Windows, activando el valor
NoWinKeys en la clave de registro
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoWinKeys"=dword:00000001
Además también puedes añadir otra política de usuario para desactivar la ejecución del programa
REGEDIT.exe, activando el valor
DisableRegistryTools en la clave de registro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\SystemWindows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=dword:00000001
Y para una protección todavía mayor también puedes modificar los permisos de usuarios de la clave
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout y
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout para evitar que se pueda modificar el valor de forma tradicional. Para llevar a cabo los cambios de permiso de usuario puedes utilizar
REGEDIT; para hacerlo de forma automatizada puedes utilizar la aplicación
REGINI de Microsoft (incluida en Windows):
...Sin embargo
REGINI es bastante tedioso de utilizar además de tener funcionalidad limitada, así que yo te recomiendo utilizar una aplicación gratuita de terceros llamada
SetACL:
(o
SetACL Studio en el caso de que prefieras usar un programa con interfáz gráfica)
¡Saludos!