如题.

解决方案 »

  1.   

    我有个做法是用WebBrowser来载入PPT然后用参数来控制换页
      

  2.   

    找到office的COM对象,拖到窗体里,调用其方法就行了
      

  3.   

    请问sskset,我现在就是用webbrowser,但问题很多,还是一头雾水,有没有代码一阅呢
      

  4.   

    可以把ppt保存成html,用webbrowser来播放
      

  5.   

    再回whChina(江城老温),我不是要用.net单纯打开ppt,我只是希望在网页中播放和简单的控制ppt.
      

  6.   

    要控制估计只能用转换html的方法了,几年前做过课件编辑器用的这种方法,代码丢失,没法给你例子了
      

  7.   

    Michael_Jackson(麦克尔★杰克逊) ,我就是这么想的,但实施的结果告诉我还是有很多问题,比如,ppt有插件,无法打开.还有运行时报没有权限、堆栈出错.....问题太多了
      

  8.   

    ppt在转成html时你说的问题应该没了.你用powerpoint自带的生成html再用IE打开试试.用.net可以调用powerpoint来自动把一个ppt转成html. 不过我这代码已经没了,时间也太久记不得了 :(
      

  9.   

    我就是把ppt另存为html,难道不是这样?
      

  10.   

    有点难,客户端未必安装了PPT,所以,转换成其它的格式是好办法。
      
      

  11.   

    不是不能打开,我说的不准确,而是被阻止,需要我手动解除,也许这就影响了它在webbrowers中打开了;而且我用网上盛传的navigate(string url)被告之无法获取参数1,navigate(string url,ref,ref,ref)也被告之不对。到底怎么用这个方法呢?昏了~
      

  12.   

    回cangwu_lee(小橙子) ,我好像看见过一个帖子,说客户端不一定要装ppt的,打包一个他家的dll,具体的记不清了。不过这个不是关键,我做的是论文,嘻嘻
      

  13.   

    对.用office带的com就可以了,.net使用这些com可以直接生成html.另外webBrowser1.Navigate方法应该只有一个参数就能用吧?最近还在用这个,
    net 2005自带的webBrowser
      

  14.   

    Microsoft PowerPoint 11.0 Object Library 这个库引进来还有其它吃饭了...
      

  15.   

    大大,吃饭巴。小的吃不下,在这里坐等~~,加一句:using mshtml;
    using SHDocVw;
    using System.Reflection;
    using Office;
    网上有提过的,我都试了,是不是一个听话无害的小白鼠啊~~怎么就给药吃,都不说出关键呢?
      

  16.   

    首先添加COM里的Microsoft.PowerPoint 和Graph还有Microsoft.Core
    这是一个自己添加图片并播放幻灯片的例子,NEW了那些接口后,他里面的代码几乎和VBA没有区别,想做什么你在自己研究下吧.
    using Microsoft.Office.Core;
      private void button1_Click(object sender, EventArgs e)
            {
                ShowPresentation();
                GC.Collect();
            }        private void ShowPresentation()
            {
                String strTemplate, strPic;
    //指定一个空的就可以.       
    strTemplate =
                  @"D:\Documents and Settings\Administrator\桌面\ac.ppt";
                strPic = @"D:\Documents and Settings\Administrator\My Documents\My Pictures\1161780712659.jpg";
                bool bAssistantOn;            PowerPoint.Application objApp;
                PowerPoint.Presentations objPresSet;
                PowerPoint._Presentation objPres;
                PowerPoint.Slides objSlides;
                PowerPoint._Slide objSlide;
                //PowerPoint.TextRange objTextRng;
                PowerPoint.Shapes objShapes;
                PowerPoint.Shape objShape;
                PowerPoint.SlideShowWindows objSSWs;
                PowerPoint.SlideShowTransition objSST;
                PowerPoint.SlideShowSettings objSSS;
                PowerPoint.SlideRange objSldRng;
                Graph.Chart objChart;            objApp = new PowerPoint.Application();
                
                objApp.Visible = MsoTriState.msoTrue;
                objPresSet = objApp.Presentations;
                objPres = objPresSet.Open(strTemplate,
                    MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
                objSlides = objPres.Slides;            objSlide = objSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
                
                objSlide.Shapes.AddPicture(strPic, MsoTriState.msoFalse, MsoTriState.msoTrue,
                    150, 150, 500, 350);         
                objSlide = objSlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
                
                objChart = (Graph.Chart)objSlide.Shapes.AddOLEObject(150, 150, 480, 320,
                    "MSGraph.Chart.8", "", MsoTriState.msoFalse, "", 0, "",
                    MsoTriState.msoFalse).OLEFormat.Object;
                objChart.ChartType = Graph.XlChartType.xl3DPie;
                objChart.Legend.Position = Graph.XlLegendPosition.xlLegendPositionBottom;
                objChart.HasTitle = true;
                objChart.ChartTitle.Text = "Here it is...";            objSlide = objSlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank);
                objSlide.FollowMasterBackground = MsoTriState.msoFalse;
                objShapes = objSlide.Shapes;
                objShape = objShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect27,
                  "The End", "Impact", 96, MsoTriState.msoFalse, MsoTriState.msoFalse, 230, 200);            int[] SlideIdx = new int[3];
                for (int i = 0; i < 3; i++) SlideIdx[i] = i + 1;
                objSldRng = objSlides.Range(SlideIdx);
                objSST = objSldRng.SlideShowTransition;
                objSST.AdvanceOnTime = MsoTriState.msoTrue;
                objSST.AdvanceTime = 3;
                objSST.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut;            bAssistantOn = objApp.Assistant.On;
                objApp.Assistant.On = true;            objSSS = objPres.SlideShowSettings;
    //如过你不想循环放映就把TRUE改成FALSE.
                objSSS.LoopUntilStopped = MsoTriState.msoCTrue;
                objSSS.StartingSlide = 1;
                objSSS.EndingSlide = objSlides.Application.ActivePresentation.Slides.Count;
                objSSS.Run();            //Wait for the slide show to end.
                objSSWs = objApp.SlideShowWindows;
                while (objSSWs.Count >= 1) System.Threading.Thread.Sleep(100);            //Reenable Office Assisant, if it was on:
                if (bAssistantOn)
                {
                    objApp.Assistant.On = true;
                    objApp.Assistant.Visible = false;
                }            //Close the presentation without saving changes and quit PowerPoint.
                objPres.Close();
                objApp.Quit();
            }
    你这分给的也太少了,应该额外多送点.
      

  17.   

    回kook_tian(),  objApp = new PowerPoint.Application();没有啊?是不是objApp = new PowerPoint.ApplicationClass();??
      

  18.   

    我用的是2005,可能是这样,你自己调一下吧.PowerPoint._Presentation objPres;
    这个接口就是你打开文件的.我们公司今天总吊线,不知咋回子事.
      

  19.   

    我才仔细看你说了什么,这个问题我已经解决过了,我也是找例子做的没错,上面这段代码是我调试过的,粘到2005就能跑.没什么难的,它加完那几个COM后会有一堆的接口让你调用,里面的代码和VBA几乎一样,如果你不习惯C#的语法你可以再加个VB的COM调用,那么他就可以完全支持VB的语法.
      

  20.   

    kook_tian 兄是好人,调试通过!
      

  21.   

    我的也是2005,为什么
    using Microsoft.Office.Core;
    引不进去呀????