关闭从桌面启动的程序后让 Windows 8 返回 Metro 开始屏幕

关闭从桌面启动的程序后让 Windows 8 返回 Metro 开始屏幕

我希望当我关闭程序或文件时,Windows 8 能够自动返回到 Metro 开始屏幕,而不是返回桌面。

如何才能做到这一点?

答案1

您可以使用以下方式实现它自动热键. 安装它,并创建以下 2 个文件:

切换器

#SingleInstance force

WinGet, id_ini, list,,, Program Manager
prev = %id_ini%

loop 
{
sleep 3000     ; Milliseconds for which the loop waits before another iteration
WinGet, id, list,,, Program Manager
current = %id%
if(current < prev)
{
  ;somethin closed - press windows key here
  Run, "C:\press_windows.vbs"   
}
prev = %id%
sleep 500
}

按下_windows

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESCAPE}"

创建两个文件后并调整路径切换器文件到您创建的 vbs 的位置。您只需要跑步Autohotkey 文件(即 switcher.ahk),您就完成了。

这将计算所有窗口(不包括后台服务和进程),如果窗口数量减少,它会发送 Windows 按键并切换到 Modern-UI。

我正在使用 VBS,因为某种原因,Windows-8 不接受通过 AHK 按下 Windows 键。

笔记:此脚本需要改进,有时它可能会表现异常,因为它还将上下文菜单和通知视为新窗口。因此,当它们关闭时,它会发送一个按键。
为了避免此类行为,我们需要排除此类情况,这很容易做到。

答案2

如果您创建一个 VBS 脚本文件并使用它来启动目标应用程序,则以下指令将按您的要求执行:

'// File:  app2metro.vbs
'// Desc:  launch notepad then return to the metro interface

'//create shell object
Set WshShell = WScript.CreateObject("WScript.Shell")

'// run and wait for it to return
intReturn = WshShell.Run("notepad " & WScript.ScriptFullName, 1, TRUE)

'//switch to metro 
WshShell.SendKeys "^{ESCAPE}"

答案3

虽然在关闭程序后按下“Windows”键并不难,但如果您从 Metro 开始屏幕启动程序,然后返回该程序,则更有意义。特别是如果这是您想要推广的。

相关内容