.net 中如何播放ppt 如题. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我有个做法是用WebBrowser来载入PPT然后用参数来控制换页 找到office的COM对象,拖到窗体里,调用其方法就行了 请问sskset,我现在就是用webbrowser,但问题很多,还是一头雾水,有没有代码一阅呢 可以把ppt保存成html,用webbrowser来播放 再回whChina(江城老温),我不是要用.net单纯打开ppt,我只是希望在网页中播放和简单的控制ppt. 要控制估计只能用转换html的方法了,几年前做过课件编辑器用的这种方法,代码丢失,没法给你例子了 Michael_Jackson(麦克尔★杰克逊) ,我就是这么想的,但实施的结果告诉我还是有很多问题,比如,ppt有插件,无法打开.还有运行时报没有权限、堆栈出错.....问题太多了 ppt在转成html时你说的问题应该没了.你用powerpoint自带的生成html再用IE打开试试.用.net可以调用powerpoint来自动把一个ppt转成html. 不过我这代码已经没了,时间也太久记不得了 :( 我就是把ppt另存为html,难道不是这样? 有点难,客户端未必安装了PPT,所以,转换成其它的格式是好办法。 不是不能打开,我说的不准确,而是被阻止,需要我手动解除,也许这就影响了它在webbrowers中打开了;而且我用网上盛传的navigate(string url)被告之无法获取参数1,navigate(string url,ref,ref,ref)也被告之不对。到底怎么用这个方法呢?昏了~ 回cangwu_lee(小橙子) ,我好像看见过一个帖子,说客户端不一定要装ppt的,打包一个他家的dll,具体的记不清了。不过这个不是关键,我做的是论文,嘻嘻 对.用office带的com就可以了,.net使用这些com可以直接生成html.另外webBrowser1.Navigate方法应该只有一个参数就能用吧?最近还在用这个,net 2005自带的webBrowser Microsoft PowerPoint 11.0 Object Library 这个库引进来还有其它吃饭了... 大大,吃饭巴。小的吃不下,在这里坐等~~,加一句:using mshtml;using SHDocVw;using System.Reflection;using Office;网上有提过的,我都试了,是不是一个听话无害的小白鼠啊~~怎么就给药吃,都不说出关键呢? 首先添加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(); }你这分给的也太少了,应该额外多送点. 回kook_tian(), objApp = new PowerPoint.Application();没有啊?是不是objApp = new PowerPoint.ApplicationClass();?? 我用的是2005,可能是这样,你自己调一下吧.PowerPoint._Presentation objPres;这个接口就是你打开文件的.我们公司今天总吊线,不知咋回子事. 我才仔细看你说了什么,这个问题我已经解决过了,我也是找例子做的没错,上面这段代码是我调试过的,粘到2005就能跑.没什么难的,它加完那几个COM后会有一堆的接口让你调用,里面的代码和VBA几乎一样,如果你不习惯C#的语法你可以再加个VB的COM调用,那么他就可以完全支持VB的语法. kook_tian 兄是好人,调试通过! 我的也是2005,为什么using Microsoft.Office.Core;引不进去呀???? 保存 sqlserver的问题,高手来看看 .net解析Html页面 C#如何生成传统的Windows应用程序? datamax怎么打印汉字?求高手。 如何将一个方法用字符串表示出来? 怎么把一个test.xml文读到Stream或XmlReader或TextReader里面? 请教高手 请问如何得到RichTextBox的滚动条。并控制使滚动到特定的位置 我重装了 XP 如何解密我以前加密的内容? 如何制作一个网管软件类似的登陆页面 如何控制在DataGrid中不能输入全角数字,符号,字母?
net 2005自带的webBrowser
using SHDocVw;
using System.Reflection;
using Office;
网上有提过的,我都试了,是不是一个听话无害的小白鼠啊~~怎么就给药吃,都不说出关键呢?
这是一个自己添加图片并播放幻灯片的例子,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();
}
你这分给的也太少了,应该额外多送点.
这个接口就是你打开文件的.我们公司今天总吊线,不知咋回子事.
using Microsoft.Office.Core;
引不进去呀????