确定Powerpoint是否处于演示模式

本文关键字:于演示 模式 是否 Powerpoint 确定 | 更新日期: 2023-09-27 18:37:25

我编写了一个程序,当经过用户可以自己设置的间隔时,它会弹出并播放声音。

现在,我希望当 Powerpoint 在演示模式下运行并且间隔过去时,它保持静音,这样程序就不会出现在屏幕顶部,也不会在与外部观众进行演示时播放声音。

使用的PowerPoint版本是07/10/13(12.0/14.0/15.0)我找不到任何方法来确定演示模式是否正在运行。

该程序不是PowerPoint插件或类似的东西,只是一个普通的WPF桌面应用程序。

确定Powerpoint是否处于演示模式

抱歉,如果回答我自己的问题看起来有点贪婪,但我认为这个答案将帮助有相同问题的人:

只需添加名为"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

访问下面的链接。我认为这会有所帮助

检测全屏模式是否打开