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从批处理文件运行而不将击键发送到批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

Python 将击键发送到非活动应用程序

将击键发送到特定窗口(在后台),但同时做其他事情[重复]

从 Winforms 应用程序发送全局击键/伪造全局热键

按下箭头键时跳转组合框

通过 JNA 向隐藏窗口发送击键

使用 AJAX 和 jQuery 验证 From 而不将数据发送到另一个文件