답변:
cmd.exe에서 알 수있는 유일한 방법은 powershell 또는 vbs를 생성하는 것입니다.
배치 끝에 이걸 버리면 CAPSLOCK이 토글됩니다.
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')"
이는 명령 행을 통해 powershell을 호출하고 sendkeys를 호출합니다. 또 다른 방법은 비슷한 명령을 % temp % 파일에 echo 한 다음 wscript %temp%\my.vbs
.
편집 : 여기는 단지 capslock을 해제 확인하는 IF 성명입니다
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -eq 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"
start /wait
배치 스크립트에 포커스를 되돌리고 찾은 명령을 실행합니다.
사용 JP 소프트웨어의 TCC / LE 물론 배치 스크립트를 실행할 수 있습니다. 내장 된 스크립트만큼 간단합니다. KEYBD
명령. 따라서 TCC / LE로 실행하는 래퍼 스크립트는 다음과 같습니다.
@echo off
:: Force CAPS LOCK on beforehand.
keybd /c1
call very-old-program
:: Force CAPS LOCK off afterwards.
keybd /c0
이 페이지에서 아주 작은 프로그램을 사용할 수 있습니다. http://www.rjlsoftware.com/software/utility/capslock/ 그것은 무료이며 잘 작동합니다. cmd에서 "capslock on"또는 "capslock off"를 사용하십시오.
[console]::CapsLock
IF 문과 함께 현재 상태 $ true 또는 $ false를 표시하므로 capslock이 이미 해제되어 있으면 실행되지 않도록 할 수 있습니다.