La única manera que sé de cmd.exe es generando powershell o vbs.
Suelta esto al final de tu lote, alterna CAPSLOCK
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')"
Eso llama a powershell a través de la línea de comandos e invoca las teclas de envío, el método alternativo es hacer eco de comandos similares en un archivo% temp% y luego wscript %temp%\my.vbs
.
EDITAR: Aquí está la declaración IF para garantizar que solo apague el bloqueo de mayúsculas
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -eq 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"
[console]::CapsLock
muestra el estado actual $ true o $ false combinado con una instrucción IF, puede asegurarse de que no se ejecute si el bloqueo de mayúsculas ya está desactivado.start /wait
, volverá a enfocarse en el script por lotes y ejecutará cualquier comando adicional que encuentre.Usar el TCC / LE de JP Software , que puede ejecutar scripts por lotes, por supuesto, es tan simple como el
KEYBD
comando incorporado . Entonces, su script de envoltura que ejecuta con TCC / LE sería:fuente
Puede usar un programa muy pequeño en esta página http://www.rjlsoftware.com/software/utility/capslock/ es gratis y funciona bien para mí. Simplemente use "capslock on" o "capslock off" en cmd.
fuente