2011-01-25 4 views
0

Я хочу воспроизвести файлы ppt в непрерывном цикле, но когда я открою новый файл после того, как первый достиг своего последнего слайда, откроется новое окно PowerPoint и запустит слайд. Как я могу решить эту проблему?C# - Показать презентации PowerPoint непрерывно

 public Microsoft.Office.Interop.PowerPoint.SlideShowWindow startppt(string pptDatei) 
    { 
     WatchingLabel.Text = "Präsentation läuft..."; 
     started = true; 
     ende = false; 
     objPres = ppApp.Presentations.Open(pptDatei, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoTrue); 

     objPres.SlideShowSettings.ShowWithAnimation = Microsoft.Office.Core.MsoTriState.msoTrue; 
     presWin = objPres.SlideShowSettings.Run(); 

     return presWin; 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     WatchingLabel.Text = "Watching..."; 

     if (System.IO.Directory.Exists(ordner)) 
     { 
      pptDatei.Clear(); 
      pptDatei.AddRange(System.IO.Directory.GetFiles(ordner, "*.ppt")); 

      if (started == true && presWin.View.State == Microsoft.Office.Interop.PowerPoint.PpSlideShowState.ppSlideShowDone) 
      { 
       objPres.Close(); 
       ende = true; 
       started = false; 
      } 

      if (pptDatei.Count > 0 && ende && started == false) 
      { 
       if (index < pptDatei.Count) 
       { 
        startppt(pptDatei[index]); 
        index += 1; 
       } 
       else 
       { 
        index = 0; 
       } 
      } 
      else if (pptDatei.Count > 0 && ende == false && started == true) 
      { 
       presWin.View.Next(); 
      } 

     } 
    } 

    public void ppApp_PresentationClose(Microsoft.Office.Interop.PowerPoint.Presentation Pres) 
    { 
     pptDatei = new List<string>(); 
     started = false; 
     ende = true; 
     WatchingLabel.Text = "Präsentation beenden..."; 
    } 

    public void ppApp_SlideShowEnd(Microsoft.Office.Interop.PowerPoint.Presentation Pres) 
    { 
     ende = true; 
     started = false; 
    } 
+0

@ user589216: просто хотел следить за тем, соответствует ли ниже ваш вопрос –

ответ

1

К сожалению, нет, вы не можете сделать это с помощью нескольких файлов PowerPoint. До PowerPoint 2010 вы не можете одновременно запускать более одного PPT (и даже с PP2010 это неудобно). Таким образом, закрывая один и открывая новый, вы теряете основное окно запуска.

Вы можете создать несколько экземпляров PowerPoint, установить их как видимые/скрытые, а затем, когда одно слайд-шоу закончится, программно отобразить следующий и отобразить его для запуска, но это будет страдать от той же проблематики, что и у вас уже есть.

Лучшее, что вы можете сделать, это прочитать все ppts в каталоге, объединить их все в новую колоду в нужном вам порядке (и указать макеты и т. Д.), А затем запустить эту одну колоду в петле киоска.