批量封锁 - 替代品

时间:2012-08-09 14:43:05

标签: vbscript batch-processing batch-file

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

::::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 ON
  • 如果已经开启,则激活CAPS OFF

我想将其更改为始终关闭。如何在代码中进行这种轻微修正?

由于

1 个答案:

答案 0 :(得分: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为OFF。

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