是否存在一个应用程序,可以让计算机在计时器上在两个不同的应用程序之间切换(聚焦)?这是针对 Windows 7 的。
我需要这个屏幕来向客户公开显示。我希望屏幕每 30 秒在两个不同的应用程序之间切换一次。我认为现在有足够多的企业使用面向客户的显示器,所以一定存在这样简单的东西!
答案1
是的,它被称为自动识别。
您可以使用如下方法:
While 1 ;loop indefinitely
WinActivate("notepad","") ;give focus to notepad
Sleep(30000) ;sleep 30 seconds
WinActivate("wordpad","") ;give focus to wordpad
Sleep(30000) ;sleep 30 seconds
WEnd
WinActivate() 将焦点放在标题完全匹配或最接近的窗口上,如果有两个窗口符合条件,则将焦点放在最近激活的窗口上。Sleep() 以毫秒为单位,因此 30000 为 30 秒。
答案2
答案3
既然 Windows 可以开箱即用,为什么还要安装程序(如 AutoIt)呢?
将以下内容保存到名为的文件中auto_switch.vbs
:
Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
WScript.Sleep 30000
WshShell.SendKeys("%{TAB}")
Loop
将 更改30000
为 Alt+Tab 按下之间的毫秒数(因此 30000 = 30 秒)。双击它即可开始运行。
如果您想停止它,那么您需要终止名为“wscript”的进程。
如果您想在明确命名的程序之间切换,那么此代码将每 30 秒在“收件箱 - Microsoft Outlook”和“Firefox”之间切换:
Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
WScript.Sleep 30000
WshShell.AppActivate("Inbox - Microsoft Outlook")
' WshShell.SendKeys "% r"
WScript.Sleep 30000
WshShell.AppActivate("Firefox")
' WshShell.SendKeys "% r"
Loop
值得注意的是,如果上述示例中的应用程序被最小化,那么即使在激活之后它们也将保持最小化状态。
要恢复窗口,请删除'
前面的WshShell.SendKeys
。这将使脚本激活窗口,然后立即发送恢复键组合Alt+ SpaceBar, r。如果您使用的是非英语版本的 Windows,则可能需要更改此快捷方式。
答案4
以下允许您在 6 个程序之间切换而无需命名它们。基本上,输入{TAB}
比您要切换的窗口数少 1 的数值,并且不要打开任何多余的窗口。
据我所知,最多可以适用于 6 个窗口,甚至可能更多。
Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
WScript.Sleep 1000
WshShell.SendKeys("%({TAB}{TAB}{TAB}{TAB}{TAB})")
Loop