目的:写一段代码,使之能够播放powerpoint!!!
谁有思路或是代码,谢谢了!!!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var SWindow:SlideShowWindow;
    begin
      PowerPointApplication1.Connect;
      PowerPointApplication1.Visible := 1;
      PowerPointApplication1.Presentations.Open('d:\22.ppt',msofalse,msotrue,msotrue);
      with PowerPointApplication1.Presentations.Item(1) do
      begin
        SlideShowSettings.AdvanceMode := ppSlideShowUseSlideTimings;
        SlideShowSettings.LoopUntilStopped := msoTrue;
        SWindow := SlideShowSettings.Run;
        Form1.SetFocus;
      end;
    end;
      

  2.   

    findcsdn(findcsdn):
    谢谢,可是我想要的不是打开一个新的ppt,而是要让ppt在form里播放,或者,至少能在form里预览到第一页,可以吗?
    还有谁有好的办法,谢谢!!!
      

  3.   

    我知道了,可以用WebBrowser1:
    WebBrowser1.Navigate('a.ppt');现在又有新问题,当打开ppt时会询问“保存还是打开?”,怎样让程序自动选择“打开”?
      

  4.   

    在form上放置一个 TOleContainer 控件procedure TForm1.Button1Click(Sender: TObject);
    begin
      OleContainer1.CreateLinkToFile('d:\a.ppt',false);
    end;
      

  5.   

    我没有时间给你写了,copy了一些DFW的离线内容:
    =============================
    在delphi6下用Server中的   TPowerPointApplication和TPowerPointPresentation,可以
    对PowerPoint进行操作.当然你也可以用CreateOleObject('PowerPoint.application')对
    PowerPoint进行操作.下面是一段试验代码,其中
       pptA: TPowerPointApplication;
       pptP: TPowerPointPresentation;
    另外两个对象是
      ssSet: SlideShowSettings; 用于设置幻灯片的放映属性
      ssWin: SlideShowWindow;  用于播放幻灯片的控制
    ssWin有一个成员对象View可以控制幻灯片放映First,Next,Previous,Last,以及停止
    放映Exit,这样的话就可以控制循环播放次数了.
    ========================================================
    var
      ssSet: SlideShowSettings;
      ssWin: SlideShowWindow;procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
    begin
      pptA := TPowerPointApplication.Create(self);
      pptA.Visible := msoTrue;
      PPtP.ConnectTo(pptA.Presentations.Open('e:\sy\study\sample\test.ppt', msoFalse, msoFalse, msoTrue));
      ssSet := PPtP.SlideShowSettings;
      ssSet.LoopUntilStopped := msoFalse;
      ssSet.ShowType := ppShowTypeSpeaker;
      ssSet.Run;
      ssWin := PPtP.SlideShowWindow;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      ssWin.View.Next;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      ssWin.View.Exit;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      try
        pptA.Disconnect;
        pptA.Quit;
        if assigned(pptA) then pptA.Free;
      except
        showmessage('PowerPoint has already closed!');
      end;
    end;procedure TForm1.Button4Click(Sender: TObject);
    begin
      try
        pptA.Disconnect;
        pptA.Quit;
        if assigned(pptA) then pptA.Free;
      except
        showmessage('PowerPoint has already closed!');
      end;
    end;