2

我想知道我是否可以使用下面的相同代码并进行一些小的更改来添加我需要的功能。它的写法:

::::Set WshShell = CreateObject("WScript.Shell")
::::WshShell.SendKeys "{capslock}"
Set WshShell = Nothing
findstr "^::::" "%~sf0" > temp.vbs & Cscript //nologo temp.vbs & del temp.vbs
echo Capslock is off

结果 :

  • 如果 CAPS 已经关闭,它会激活 CAPS ON
  • 如果它已经打开,它会激活 CAPS OFF

我想将其更改为always OFF。如何在代码中进行这种轻微的更正?

谢谢

4

1 回答 1

5

此 VBS 使用 Word.Application 来查询 CAPS 状态。如果 CAPS 为 ON,那么我们将其关闭。

Set objShell = CreateObject("WScript.Shell")
Set objWord = CreateObject( "Word.Application" )

if objWord.CapsLock <> 0 then
   ' turn capslock off
   objShell.SendKeys "{capslock}" 
end if
objWord.Quit

为了将所有内容保存在一个批处理文件中,我们生成了一个临时 .vbs 文件,执行并删除它以确保 CAPS 处于关闭状态。

set BAT_HOME=%~dp0
echo %BAT_HOME%
cd %BAT_HOME%
echo Set objShell = CreateObject("WScript.Shell") > temp.vbs
echo Set objWord = CreateObject( "Word.Application" ) >> temp.vbs
echo if objWord.CapsLock ^<^> 0 then >> temp.vbs
echo objShell.SendKeys "{capslock}" >> temp.vbs
echo end if >> temp.vbs 
echo objWord.Quit >> temp.vbs
cscript //nologo temp.vbs
del temp.vbs
echo ... do your thing in the batch file
于 2012-08-09T16:58:30.327 回答