高手们帮个忙!(75分)

  • 主题发起人 主题发起人 lb2000
  • 开始时间 开始时间
L

lb2000

Unregistered / Unconfirmed
GUEST, unregistred user!
我想获取ppt(PowerPoint)文件的内容

dtot:=CreateoleObject('PowerPoint.Application');
dtot.Presentations.Open(filename,?,?,?);
dtot.ActivePresentation.SaveAs(filename,?,?);

请问带问号的参数如何指定?
 
不用指定。那些参数都有默认值的。个别参数如文件名等则一定要指定。
具体可以看MSDN的文档,里面有每个属性、方法、事件。是VB语言的。

这样写就对了:
dtot.Presentations.Open(filename);
dtot.ActivePresentation.SaveAs(filename);
 
不指定参数编译能够通过,运行时出错,提示为:

Presentations.Open 无效的请求。
Powerpoint框架窗口不存在。Process Stopped.

请问如何解决?



 
出错是因为你对Powerpoint本身不熟悉,知道怎么调用还不够,
还要知道该调用些什么。每个OLE对象都提供很多方法和属性的,
你要用哪个就要熟悉该对象的方法。Delphi本身带了如何操作WORD
和Powerpoint的例子,你可以参考:
C:/Program Files/Borland/Delphi5/Demos/Activex/Oleauto/SrvComp/PowerPoint
里面有详细的调用方法,我就不罗嗦了。
 
谢谢adminis的指点,但有一个问题始终无法解决.

当设置dtot.visible = 1 时,可以在启动Powerpoint情况下获取ppt文件的内容,
但我希望Powerpoint在后台运行,于是我注释dtot.visible = 1;

程序运行出错,提示为:
Presentations.Open 无效的请求。
Powerpoint框架窗口不存在。Process Stopped.

请问各位如何解决此问题.

 
如果你要知道PowerPoint的详细资料,就可以引入它的tlb,
具体叫什么名字忘了,查找一下,引入这个文件的时候,可以
得到一个PAS文件,这个是对于tlb的PASCAL描述.
这个应该能够看懂的.
当然了,最好还是熟悉PowerPoint
 
高手们都去那了?
 
附加功能 将问题提前
 
visible 的值好像应该是True和False吧
 
提问者如果希望继续讨论,请在15天内至少提前一次。
 
多人接受答案了。
 
后退
顶部