3

У меня есть очень старая программа, которой нужны все команды. Когда я выхожу из этой программы, я часто забываю отключить Caps Lock (очень раздражает). У меня была пакетная программа в XP, которая сделала это, но не могу найти способ сделать это в Win 7.

3 ответа3

5

Единственный способ, который я знаю из 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}')}"
1

Используя 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
0

Вы можете использовать очень маленькую программу на этой странице http://www.rjlsoftware.com/software/utility/capslock/, она бесплатна и отлично работает для меня. Просто используйте "capslock on" или "capslock off" в cmd.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .