Vbscript从批处理文件运行而不将击键发送到批处理文件
Posted
技术标签:
【中文标题】Vbscript从批处理文件运行而不将击键发送到批处理文件【英文标题】:Vbscript ran from batch file not sending keystrokes to batch file 【发布时间】:2020-12-24 08:43:24 【问题描述】:@echo off
timeout /t 2 >NUL
cls
cd %temp%
set "var1=%random%%random%"
echo >%var1%.vbs set shell = CreateObject("WScript.Shell"):shell.SendKeys "%ENTER" & %var1%.vbs
pause
这是我的代码。我基本上希望批处理文件做的是完全全屏打开自己(我说的是f11全屏模式)。您可以使用 ALT+ENTER 在 Windows 10 上全屏显示批处理文件。所以我写vbs发送键来做到这一点...%
和ENTER
是发送ALT+ENTER...运行时,我没有收到vbs错误...只是没有全屏.. . 为什么?
【问题讨论】:
也许是this helps? 我相信你需要escape%
-登录%ENTER
就像%%ENTER
...
双转义符号由于某种原因仍然不起作用。
Stephan,batch/cmd 有 ALT+ENTER 全屏。我说的不是最大化,我说的是全屏。
我找到了解决方案。 echo >%var1%.vbs set shell = CreateObject("WScript.Shell"):shell.SendKeys "F11" & %var1%.vbs
【参考方案1】:
我创建了这个批次,并在我的 Windows 10 上对其进行了测试,它可以 5/5 运行
@echo off
Set "MyTitle=FullScreen"
Title %MyTitle% & color 0A & cls & cd %temp%
set "vbsfile=%~n0.vbs"
echo >"%vbsfile%" set shell = CreateObject("WScript.Shell"):shell.SendKeys "F11"
REM Timeout /t 1 /nobreak>NUL
Wscript.exe "%vbsfile%"
Ipconfig /all
pause
这是另一批,当你想全屏或回到正常屏幕时,可以使用它作为子调用:
@echo off
REM Here we call the sub :FullScreen to make it fullscreen
Call :FullScreen
Ping www.google.com
Tracert www.google.com
Call :FullScreen REM You come to the normal when we call it again the sub :FullScreen
ipconfig /all
Pause & Exit
REM -------------------------------------------------------------------------------
:FullScreen
Set "MyTitle=FullScreen"
Title %MyTitle% & color 0A & cls & cd %temp%
set "vbsfile=%~n0.vbs"
echo >"%vbsfile%" set shell = CreateObject("WScript.Shell"):shell.SendKeys "F11"
REM Timeout /t 1 /nobreak>NUL
Wscript.exe "%vbsfile%"
Exit /b
REM -------------------------------------------------------------------------------
【讨论】:
以上是关于Vbscript从批处理文件运行而不将击键发送到批处理文件的主要内容,如果未能解决你的问题,请参考以下文章