确定 Powerpoint 是否处于演示模式
Determine whether Powerpoint is in Presentation mode or not
我写了一个程序,当用户可以自己设置的时间间隔过去时弹出并播放声音。
现在我希望它在 Powerpoint 运行 处于演示模式并且间隔结束时保持静音,这样程序就不会出现在屏幕顶部并在使用外部观众。
使用的 PowerPoint 版本是 07/10/13 (12.0/14.0/15.0) 我找不到任何方法来确定演示模式是否 运行。
这个程序不是 PowerPoint 插件或类似的东西,只是一个普通的 WPF 桌面应用程序。
也许这可以帮助... "How to Automate control PowerPoint Slide" https://code.msdn.microsoft.com/office/How-to-Automate-control-23cd2a8f
您可以检测任何其他程序(不仅是 PowerPoint)是否 运行 全屏。
这正是您想要的答案
请访问下方 link。我认为这会有所帮助
抱歉,如果回答我自己的问题看起来有点贪心,但我认为这个答案会帮助遇到同样问题的人:
只需添加名为 "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 运行 处于演示模式并且间隔结束时保持静音,这样程序就不会出现在屏幕顶部并在使用外部观众。
使用的 PowerPoint 版本是 07/10/13 (12.0/14.0/15.0) 我找不到任何方法来确定演示模式是否 运行。
这个程序不是 PowerPoint 插件或类似的东西,只是一个普通的 WPF 桌面应用程序。
也许这可以帮助... "How to Automate control PowerPoint Slide" https://code.msdn.microsoft.com/office/How-to-Automate-control-23cd2a8f
您可以检测任何其他程序(不仅是 PowerPoint)是否 运行 全屏。 这正是您想要的答案
请访问下方 link。我认为这会有所帮助
抱歉,如果回答我自己的问题看起来有点贪心,但我认为这个答案会帮助遇到同样问题的人:
只需添加名为 "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;
}