Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 模拟快捷键Home+;D_Batch File - Fatal编程技术网

Batch file 模拟快捷键Home+;D

Batch file 模拟快捷键Home+;D,batch-file,Batch File,我是否可以用批处理文件模拟按Home+D键 我需要它,以尽量减少IE窗口是在全屏而不失去全屏属性 谢谢您的意思是+D.可以模拟按键。很遗憾,SendKeys无法发送密钥。但是,您可以尝试先发送Alt+空格,然后发送N以最小化活动窗口。您需要在Alt+Space和N之间稍作停顿,以使标题栏图标菜单有机会渲染——否则,N将被发送到主窗口而不是菜单 将此保存为.bat文件并运行它进行演示 @if (@a==@b) @end /* JScript multiline comment :: begi

我是否可以用批处理文件模拟按Home+D键

我需要它,以尽量减少IE窗口是在全屏而不失去全屏属性

谢谢

您的意思是+D.可以模拟按键。很遗憾,SendKeys无法发送密钥。但是,您可以尝试先发送Alt+空格,然后发送N以最小化活动窗口。您需要在Alt+Space和N之间稍作停顿,以使标题栏图标菜单有机会渲染——否则,N将被发送到主窗口而不是菜单

将此保存为
.bat
文件并运行它进行演示

@if (@a==@b) @end   /* JScript multiline comment

:: begin batch portion

@echo off
setlocal

for /f "tokens=2" %%I in ('tasklist /v /fi "imagename eq iexplore.exe" ^| find "Internet Explorer"') do set "PID=%%I"
if defined PID goto minimize

:: apparently IE is not running.  Launch, then wait for it to appear.
start "" "%programfiles%\Internet Explorer\iexplore.exe"
:ie 
ping -n 2 0.0.0.0 >NUL
for /f "tokens=2" %%I in ('tasklist /v /fi "imagename eq iexplore.exe" ^| find "Internet Explorer"') do set "PID=%%I"
if not defined PID goto ie

:minimize
cscript /nologo /e:Jscript "%~f0" "%PID%"

goto :EOF

:: end batch portion / begin JScript */

var oShell = WSH.CreateObject('wscript.shell');
WSH.Echo('Activating window with PID ' + WSH.Arguments(0));
oShell.AppActivate(WSH.Arguments(0));
WSH.Sleep(100);
WSH.Echo('Making full screen');
oShell.SendKeys('{F11}');
WSH.Sleep(1000);
WSH.Echo('Activating titlebar icon menu');
oShell.SendKeys('% ');
WSH.Sleep(100);
WSH.Echo('Minimizing');
oShell.SendKeys('n');
WSH.Sleep(100);
编辑:无论如何,Alt+Esc也将最小化大多数窗口。但它不适用于F11模式IE。全屏IE被推到所有窗口的后面,而不是最小化。但是如果其他人在谷歌搜索中发现这个答案,请尝试发送Alt+Esc。这对于最小化
cmd
窗口尤其有用,因为Alt+Space对这些窗口不起作用


编辑2:要让脚本最小化自己的窗口,然后最小化IE,然后重新启动自己,请尝试以下修改:

@if (@a==@b) @end   /* JScript multiline comment

:: begin batch portion

@echo off
setlocal

for /f "tokens=2" %%I in ('tasklist /v /fi "imagename eq iexplore.exe" ^| find "Internet Explorer"') do set "PID=%%I"
if defined PID goto minimize

:: apparently IE is not running.  Launch, then wait for it to appear.
start "" "%programfiles%\Internet Explorer\iexplore.exe"
:ie 
ping -n 2 0.0.0.0 >NUL
for /f "tokens=2" %%I in ('tasklist /v /fi "imagename eq iexplore.exe" ^| find "Internet Explorer"') do set "PID=%%I"
if not defined PID goto ie

:minimize
cscript /nologo /e:Jscript "%~f0" "%PID%"

goto :EOF

:: end batch portion / begin JScript */

var oShell = WSH.CreateObject('wscript.shell');
if (WSH.Arguments.length == 1) {
    WSH.Echo('Activating window with PID ' + WSH.Arguments(0));
    oShell.SendKeys('%{ESC}')
    oShell.AppActivate(WSH.Arguments(0));
    WSH.Sleep(100);
    WSH.Echo('Making full screen');
    oShell.SendKeys('{F11}');
    WSH.Sleep(1000);
    WSH.Echo('Minimizing');
    oShell.SendKeys('% ');
    WSH.Sleep(100)
    oShell.SendKeys('n');
    oShell.Run('cscript /nologo /e:JScript ' + WSH.ScriptFullName + ' ' + WSH.Arguments(0) + ' ' + '1', 1, false);
    WSH.Sleep(100);
    WSH.Quit(0);
}
else {
    WSH.Echo('Done.  Hit ENTER to exit.');
    WSH.StdIn.ReadLine();
}

还有另一种方法可以使用vb脚本
c:\Windows\System32\cscript.exe//H:cscript
yourscript.vbs
脚本文件只包含两个命令

set objShell=CreateObject(“shell.application”)

objShell.ToggleDesktop

另一种方法是调用
AutoHotkey.exe winD.ahk
脚本文件WinD.ahk由一行组成

Send, #d


你是说Meta+D?调查很遗憾,SendKeys无法发送Windows元密钥。但是,您可以尝试发送
[Alt]+[Space]
,然后发送
[n]
,以最小化活动窗口。我只是在F11模式下用手动按键在IE上进行了尝试,它成功地最小化了,然后在重新激活时恢复到全屏。例如用法。也可以考虑。谢谢,我想这会起作用,你能告诉我在哪里可以找到Windows PT的代码吗?谢谢,什么是Windows PT?那是葡萄牙语吗?在Internet Explorer中,点击Alt+Space,然后寻找最小化的选项。适当的字母将在下面划线。对不起,应该解释得更好,是的,它是葡萄牙语。谢谢,但似乎无法使它像这样工作。wshell set wshell=CreateObject(“WScript.Shell”)wshell.SendKeys“%n”嗨,谢谢,但它似乎不工作,我注意到你检查ie是否打开,teres没有必要,因为bat将从ie调用,它将打开。我的意图不是从开始到结束管理你的项目。这仅仅是概念的证明。可能还有其他问题——例如,浏览器安全性抑制了脚本可用的功能。尝试从
cmd
提示符运行脚本。它在我的机器上工作。问题是cmd窗口在那里变成了默认窗口,因为它不会最小化我机器上的ie窗口,
oShell.AppActivate
成功聚焦ie窗口。可能是因为您直接从IE内部启动脚本,浏览器安全性限制了它启动的应用程序操纵窗口焦点的能力。尝试在
oShell.AppActivate
之前的行上执行
oShell.SendKeys('{ESC}')
。这将有望最小化控制台并将焦点恢复到IE。另外,你知道有一个窗口吗?但我试图最小化的窗口是IE