我有一个非常老的程序,需要命令全部大写。当我退出这个程序时,我经常忘记关闭 Caps Lock(非常烦人)。我在 XP 中有一个批处理程序可以做到这一点,但在 Win 7 中找不到办法做到这一点。
答案1
我从 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 语句,以确保它只关闭大写锁定
start /b /wait powershell.exe -nologo -WindowStyle Hidden -sta -command "IF ([console]::CapsLock -eq 'True'){$wsh = New-Object -ComObject WScript.Shell;$wsh.SendKeys('{CAPSLOCK}')}"
答案2
使用JP Software 的 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
答案3
您可以使用此页面中的一个非常小的程序http://www.rjlsoftware.com/software/utility/capslock/ 它是免费的,对我来说很好用。只需在 cmd 中使用“capslock on”或“capslock off”即可。