确定Powerpoint是否处于演示模式
本文关键字:于演示 模式 是否 Powerpoint 确定 | 更新日期: 2023-09-27 18:37:25
我编写了一个程序,当经过用户可以自己设置的间隔时,它会弹出并播放声音。
现在,我希望当 Powerpoint 在演示模式下运行并且间隔过去时,它保持静音,这样程序就不会出现在屏幕顶部,也不会在与外部观众进行演示时播放声音。
使用的PowerPoint版本是07/10/13(12.0/14.0/15.0)我找不到任何方法来确定演示模式是否正在运行。
该程序不是PowerPoint插件或类似的东西,只是一个普通的WPF桌面应用程序。
抱歉,如果回答我自己的问题看起来有点贪婪,但我认为这个答案将帮助有相同问题的人:
只需添加名为"Microsoft PowerPoint 15.0 Object Libary"的 COM 引用 - 它在引用列表中显示为"Microsoft.Office.Interop.PowerPoint"
以下代码测试了运行演示文稿,并测试了适用于版本 2007/10/13 (12.0/14.0/15.0) 的性能:
var PPT = new Microsoft.Office.Interop.PowerPoint.Application();
if (PPT.SlideShowWindows.Count > 0)
{ //a PowerPoint Presentation mode is currently running}
else
{//there is no PowerPoint Presentation mode running}
编辑:
一些错误报告表明,如果PowerPoint根本没有运行或演示模式未处于活动状态,则仅以上述方式执行此操作可能会导致异常,因此我稍微修改了代码:
private bool IsPPTPresentationRunning()
{
Process[] prozesse = Process.GetProcesses();
foreach (Process p in prozesse)
{//searches for a running PowerPoint process
if (p.ProcessName == "POWERPNT")
{
try
{
Microsoft.Office.Interop.PowerPoint.Application PPT =
new Microsoft.Office.Interop.PowerPoint.Application();
if (PPT.SlideShowWindows.Count > 0)
return true;
else
return false;
}
//Catches any exception that seems to get thrown when
// powerpoint is not in Presentation mode
catch (Exception)
{
return false;
}
}
}
return false;
}
也许这可以帮助..."如何自动控制PowerPoint幻灯片"https://code.msdn.microsoft.com/office/How-to-Automate-control-23cd2a8f
您可以检测是否有任何其他程序(不仅是PowerPoint)全屏运行。这是您想要的答案 https://stackoverflow.com/a/3744720/1977363
访问下面的链接。我认为这会有所帮助
检测全屏模式是否打开