描述:
我写了一个ActiveX控件,功能是在加载控件的IE窗口中利用CHtmlView类的Navigate2函数来显示指定URL的内容.
比如URL是:http://192.168.1.40/cdexp/mht/test.mht.
这个mht文件是从PPT文件转换而来的.(如果是excel,word转换而来的就没有问题)
http://192.168.1.40已经添加到了IE的可信任站点中(目的是为了让vista IE的保护模式无效)
控件在XP系统下是能够正常工作的,但在Vista上遇到了问题.
就是IE会打开一个新的选项卡来显示mht文件的内容.
我需要的是在加载控件的选项卡中显示mht文件的内容.并且IE以普通身份打开,可信任站点的保护模式无效.
可信任站点的完整性级别已经是中级了.(还能提升到高级?如果是的话希望能给个demo)
有三种情况可以让mht文件的内容显示到控件的选项卡中.
1,IE用管理者身份打开.
2,可信任站点的保护模式让它有效.
3,在给navigate函数传递的URL前加一个mhtml,变成mhtml:http://192.168.1.40/cdexp/mht/test.mht
前两种方法都不符合我的要求.第三种方法有一个问题,就是第一次访问mhtml:http://192.168.1.40/cdexp/mht/test.mht的时候
是没有问题的,能够在加载控件的选项卡中显示mht文件的内容,但接着访问mhtml:http://192.168.1.40/cdexp/mht/test2.mht
,在mht文件的大纲窗口内选择新的幻灯片的时候,就会变成无法显示了.
(第三种方法是自己试出来的^_^)
这个问题已经困扰了很久了,网上搜索了一堆相关内容,有人提了类似的问题,但没有看到过解决方案.
希望达人们能够给出点意见,多谢了!
解决方案1:
我也遇到过这个问题,以前的代码在XP下跑的好好的,在Vistal上一运行就有问题,原因是Vistal的安全性更高,所以在有权限的情况下能执行此操作。
解决方案2:你这个控件是不是拦截特定的url,例如,以mht为扩展名的全用你的控件打开?
您可能想查找下面的文章:
- 关于VARIANT的使用问题/BeforeNavigate2
- [请教]Navigate2参数中header的传递方法
- 如何获得IFRAME中的webrowers的OnBeforeNavigate2事件?
- IWebBrowser2BeforeNavigate2问题
- VC对话框程序,利用MicrosoftWebActiveX控件中的Navigate2加载本地html页面,为什么程序假死呢?分不多,望见谅,谢谢
- VC中使用IWebBrowser去Navigate一个不存在的网页的问题
- invoke向beforenavigate2传数据没postdata
- Navigate2函数提问
- webbrowser的BEFORENAVIGATE2事件
- MicrosoftWebBrowser的问题关于Navigate2函数