【发布时间】:2011-04-18 23:10:56
【问题描述】:
我需要能够制作单独的 .vbs 文件,这些文件(当使用键盘快捷键触发时)将使活动窗口最大化、最小化或恢复。
如何在不下载和安装(此处不允许)单独的包的情况下执行此操作。
【问题讨论】:
标签: vbscript
我需要能够制作单独的 .vbs 文件,这些文件(当使用键盘快捷键触发时)将使活动窗口最大化、最小化或恢复。
如何在不下载和安装(此处不允许)单独的包的情况下执行此操作。
【问题讨论】:
标签: vbscript
VBScript 和 Windows Script Host 不提供用于最大化/最小化/恢复窗口的内在函数。在没有任何第三方工具的情况下,您唯一的选择是使用SendKeys 模拟键盘快捷键在窗口的系统菜单中的相应命令。
要最大化活动窗口,可以模拟Alt+SpaceBar,x快捷键:
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "% x"
要最小化活动窗口,请使用 Alt+SpaceBar, n:
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "% n"
要恢复活动窗口,请使用 Alt+SpaceBar, r:
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "% r"
(请注意,此代码不适用于非英语 Windows 版本,其中最大化/最小化/恢复命令的名称已本地化,因此具有其他快捷方式。)
【讨论】:
SendKeys 在我的电脑上无法使用。西班牙语母语,带有西班牙语和英语键盘。我这样做了,并在我的代码中作为指令工作,并努力最大化我的 excel 窗口。我把 .Sleep 放在目视检查它。
objExcel.SendKeys"% x"
objExcel.Visible = True
objExcel.SendKeys"% x"
WScript.Sleep 2000
【讨论】:
要最大化任何窗口,下面的代码将起作用:
Application.SendKeys "%{ }"
Application.Wait (Now + TimeValue("00:00:02"))
Application.SendKeys "x"
【讨论】:
话题过时了。但我设法找到了独立于语言的解决方案。 SendKeys 基本上可以向应用程序发送任何键,包括方向键和回车键。所以我们可以在没有特定字母 (x,r,n) 的情况下模拟这些动作。这是工作示例:
Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys("% {DOWN}{DOWN}{DOWN}{DOWN}{ENTER}") 'Maximize
'...
oShell.SendKeys("% {ENTER}") 'Restore
'...
oShell.SendKeys("% {DOWN}{DOWN}{DOWN}{ENTER}") 'Minimize
【讨论】:
这适用于我的 Excel 宏,通过执行快捷键“Alt+Spacebar+x”来最大化外部 PDF 文档。
Mote:'%' 代表 Alt 键,'( )' 代表空格键,'x' 代表最大化键。
Application.SendKeys "%+( )+(x)", True
【讨论】: