To linshenyang:
恐怕楼主面临的不是一个问题:
1、如果用那个 Delphi 的狗屁 PowerPointApplication 控件打开带密码的 ppt 文件,不仅不会出现密码输入框,而且直接跳出异常,告诉您文件无法打开。
2、密码功能首次出现在 Powerpoint 2002 中,并且不像 Word 那样提供了可以直接用密码参数打开 ppt 的功能(曾有人说过可以用“文件名::密码”的格式打开,我试过纯属胡扯,估计得打补丁吧,但是您不能保证每个机器都有补丁),这是它自身的缺陷,应该是为了兼容过去版本的 ppt 吧。另外在 2003 中设置了密码的 ppt,在 Powerpoint 2002 以前的版本中是打不开的。
3、目前只有一个折中的办法,就是解决第一个问题,但密码框会弹出来。直接调用 Com 对象:
uses ComObj, ActiveX;
const
msoTrue = $FFFFFFFF;
msoFalse = $00000000;
var
ppt: OleVariant;
begin
ppt := CreateOleObject('Powerpoint.Application');
ppt.Visible := msoTrue;
ppt.Presentations.Open('D:/演示文稿.ppt', msoFalse, msoFalse, msoTrue);
end;