巨难问题:Delphi7窗体使用WebBrowser播放PPT,如何屏蔽“该文档已被修改,是否保存”对话框?

mengbo 2011-02-28 11:26:40
Delphi7使用WebBrowser控件在窗体中播放PPT,只要在PPT内点击链接并切换页面,就会提示对话框“该文档已被修改,是否保存”;

详细对话框信息如下:
该文档已被修改,是否保存修改结果?
是:保存修改结果
否:放弃修改结果
取消:仍打开该文档
(此行为3个按纽:) 是 否 取消

以上问题在Win7 + IE8(or IE9)下不会出现,但其它XP,Vista操作系统下不论使用什么版本的IE均会出现该提示,不知道要如何屏蔽,是编程可以处理,还是要修改什么配置,或者要修改注册表?
...全文
917 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2011-09-23
  • 打赏
  • 举报
回复
var
doc: _Document;
begin
WebBrowser1.Document.QueryInterface(_Document,doc);
if doc <> nil then
doc.Saved := true;
end;
hancom_li 2011-09-22
  • 打赏
  • 举报
回复
在“在PPT内点击链接并切换页面”这个页面导航前,把IE的编辑模式关闭 “EditMode(false)”,就不会弹出“保存修改结果”对话框了。

本人不懂Pascal,C#代码如下:
void EditMode(bool bEdit)
{
if (this.webBrowserBody.Document != null) {
mshtml.IHTMLDocument2 doc = this.webBrowserBody.Document.DomDocument as mshtml.IHTMLDocument2;

if (doc != null)
doc.designMode = bEdit ? "on" : "off";
}
}
希望以上内容能给你带来帮助。
luquansen 2011-09-22
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/unicorn_dsx/263955
luquansen 2011-09-22
  • 打赏
  • 举报
回复
我用Office Viewer OCX控件,很好用,PPT也能播放,能打开所有的Office文件
22222bbb 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ccrun 的回复:]
用过OLE接口, 将PPT对象的DisplayAlert置为false即可.
[/Quote]
哥哥真乃天神也
jieon 2011-05-13
  • 打赏
  • 举报
回复
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8]
"BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.RTF.8]
"BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12]
"BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.DocumentMacroEnabled.12]
"BrowserFlags"=dword:80000024

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8]
"BrowserFlags"=dword:80000A00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.12]
"BrowserFlags"=dword:80000A00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetMacroEnabled.12]
"BrowserFlags"=dword:80000A00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetBinaryMacroEnabled.12]
"BrowserFlags"=dword:80000A00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.8]
"BrowserFlags"=dword:800000A0

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.12]
"BrowserFlags"=dword:800000A0

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.ShowMacroEnabled.12]
"BrowserFlags"=dword:800000A0

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShow.8]
"BrowserFlags"=dword:800000A0

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShow.12]
"BrowserFlags"=dword:800000A0

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShowMacroEnabled.12]
"BrowserFlags"=dword:800000A0
修改注册表。
为什么我的webbroswer打开ppt不会显示工具栏。。
haitao 2011-02-28
  • 打赏
  • 举报
回复
看看调用ppt文件类型时的命令行参数有什么不同
一般在注册表的,好像是与mime什么的有关
ccrun.com 2011-02-28
  • 打赏
  • 举报
回复
用过OLE接口, 将PPT对象的DisplayAlert置为false即可.
mengbo 2011-02-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sz_haitao 的回复:]
先把ppt属性改为只读再打开?
[/Quote]

设为只读后还是会提示的,只是点击保存后,会提示你是只读文件,只能保存副本。
haitao 2011-02-28
  • 打赏
  • 举报
回复
先把ppt属性改为只读再打开?
mengbo 2011-02-28
  • 打赏
  • 举报
回复
我目前采只能用窗口一出现就发送模拟信号把窗口给灭了,在视觉上仍能看到一点点窗口出来又被灭掉的过程,效果不好,呵呵,大伙帮忙看看还有没有其它办法
mengbo 2011-02-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sz_haitao 的回复:]
从注册表查一查,*.pps的调用方式(程序,命令行参数)
该程序是不是有其它命令行可以使得不会修改和保存
[/Quote]

只知道PPS可以设置是用PowerPoint外部打开,还是在WebBrowser中打开的注册项,该注册项是可以选择是编辑模式,还是浏览模式?我选择的是浏览模式,现在是在浏览模式下提示PPT已被修改,提示保存?

其它真不晓得还有什么注册项了。
haitao 2011-02-28
  • 打赏
  • 举报
回复
从注册表查一查,*.pps的调用方式(程序,命令行参数)
该程序是不是有其它命令行可以使得不会修改和保存
mengbo 2011-02-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sz_haitao 的回复:]
看看调用ppt文件类型时的命令行参数有什么不同
一般在注册表的,好像是与mime什么的有关
[/Quote]

WebBrowser1.Navigate('file:///c:\test.pps');
我是这样调用的,按理来讲PPS文件是不可编辑的格式,但用IE打开浏览就确实会提示保存,怪。
mengbo 2011-02-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ccrun 的回复:]
用过OLE接口, 将PPT对象的DisplayAlert置为false即可.
[/Quote]

我之前试过OLEContainer的方式没办法播放PPT,不知道你说的OLE接口是指什么?
麻烦指点更详细一点,谢谢!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧