在 Windows 中自动在两个应用程序之间切换的应用程序

在 Windows 中自动在两个应用程序之间切换的应用程序

是否存在一个应用程序,可以让计算机在计时器上在两个不同的应用程序之间切换(聚焦)?这是针对 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

相关内容