确定Powerpoint是否处于演示模式

时间:2015-01-14 12:44:05

标签: c# wpf .net-3.5 powerpoint

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

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

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

这个程序不是PowerPoint插件,也不是普通的WPF桌面应用程序。

4 个答案:

答案 0 :(得分:3)

很抱歉,如果回答我自己的问题看起来有点贪心,但我认为这个答案可以帮助有同样问题的人:

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

答案 1 :(得分:1)

可能这可以帮助......"如何自动控制PowerPoint Slide" https://code.msdn.microsoft.com/office/How-to-Automate-control-23cd2a8f

答案 2 :(得分:0)

您可以检测是否有任何其他程序(不仅是PowerPoint)全屏运行。 以下是您想要的答案https://stackoverflow.com/a/3744720/1977363

答案 3 :(得分:0)

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

Detect if Full Screen mode is on