我有一个 PowerShell 脚本,它通过定期计划任务运行并在屏幕上发出通知。我如何确定计算机当前是否正在进行演示,以防止演示或将其延迟到演示结束?
我不认为这是在识别官方的“演示模式”,因为它(理论上)仅适用于笔记本电脑。
当 PowerPoint(或 LibreOffice Impress)或 Acrobat 或 Skype 或其他程序以全屏模式进行演示时,是否存在某种可识别的“请勿打扰”状态?
编辑: 如果没有系统范围的“请勿打扰”,有没有办法识别全屏模式下的应用程序?IE 不仅仅是最大化的窗口,而且是没有窗口框架、没有开始栏等的视图?也许叫“信息亭模式”?我并不反对检查一组常见的演示类应用程序是否处于这样的模式。
答案1
我如何识别计算机是否正在进行演示以阻止演示或延迟演示直至演示结束?
我不确定您如何在 PowerShell 中执行此操作,但从任何引用 PowerPoint 应用程序的 COM 或 VBA 进程中,这都会告诉您是否正在运行幻灯片:
Application.SlideShowWindows.Count
任何值 > 0 均表示幻灯片正在播放。
我不认为这是在识别官方的“演示模式”,因为理论上它只适用于笔记本电脑
如果您指的是演示者视图,那么不是,它也可以在桌面上使用。无论哪种情况,只有在连接了第二台显示器或投影仪时才有用。
当 PowerPoint(或 LibreOffice Impress)或 Acrobat 或 Skype 或其他程序以全屏模式进行演示时,是否存在某种可识别的“请勿打扰”状态
没有,但不是因为我没有向微软乞求。有些版本的 Windows 有演示模式,可以平息一些(但我认为不是全部)演示过程中来自其他软件的闲聊。