У меня есть очень старая программа, которой нужны все команды. Когда я выхожу из этой программы, я часто забываю отключить Caps Lock (очень раздражает). У меня была пакетная программа в XP, которая сделала это, но не могу найти способ сделать это в Win 7.
3 ответа
Единственный способ, который я знаю из 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%, а затем wscript %temp%\my.vbs
.
РЕДАКТИРОВАТЬ: Вот заявление IF, чтобы убедиться, что он только выключает capslock
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -eq 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"
Используя TCC /LE от JP Software, который, конечно, может запускать пакетные сценарии, это так же просто, как встроенную команду 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/, она бесплатна и отлично работает для меня. Просто используйте "capslock on" или "capslock off" в cmd.