我希望当我关闭程序或文件时,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 开始屏幕启动程序,然后返回该程序,则更有意义。特别是如果这是您想要推广的。