3810
- 收藏
- 点赞
- 分享
- 举报
Windows CE下浏览器组件定制
Windows CE提供了两种IE浏览器的源码:IESAMPLE和IESIMPLE。他们的存放路径是:%_winceroot%\public\ie\oak。IESAMPLE和IESIMPLE的许多配置参数都来自注册表,因为他们都采用同一种控件。
还有一些配置:如Internet选项,IESAMPLE能够根据控制面板中Internet选项对话框中的配置来工作,而这个选项对话框对IESIMPLE不起作用。如果想用IESIMPLE,唯一的办法就是修改源代码,在源码中设置参数。
首先,咱们看看如何在IESIMPLE源码中设置参数替代Internet选项对话框。
1、在IESIMPLE源码中找到函数:
STDMETHODIMP CMainWnd::GetHostInfo(DOCHOSTUIINFO *pInfo);
2、在代码中找到pInfo->dwFlags,这个标志可以设置的参数,如:
DOCHOSTUIFLAG_DISABLE_HELP_MENU:不显示帮助菜单、
DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE:不执行脚本、
DOCHOSTUIFLAG_DIALOG:不能选择文本、
DOCHOSTUIFLAG_NO3DBORDER:不用3D边框
需要注意的是自动完成功能在浏览器控件中默认是禁用的,但是可以通过IDocHostUIHandler实现,在GetHostInfo方法中在填充DOCHOSTUIINFO结构的dwFlags成员时,设置DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE标识位。
以上代码设置我们可以做到:
能禁用浏览器的3D的边缘
能避免滚动条或改变他们的外观
能禁用脚本
能定义双击处理的方式
能禁用浏览器的自动完成功能
3、找到函数STDMETHODIMP CMainWnd::Invoke
4、在代码中找到case DISPID_AMBIENT_DLCONTROL: 和pvarResult->lVal,
为了设置浏览器控件的下载、显示设置和执行的控制权,可以改变的参数如下:
DLCTL_DLIMAGES、DLCTL_VIDEOS 和 DLCTL_BGSOUNDS: 如果这些标识被设定,图像,视频和背景音乐将会被从服务器下载并且显示或播放,否则将不被下载和显示。
DLCTL_NO_SCRIPTS 和 DLCTL_NO_JAVA: 脚本和java小程序将不被运行。
DLCTL_DOWNLOADONLY: 网页只将会被下载,不显示。
DLCTL_NO_FRAMEDOWNLOAD:浏览器控件将会下载并且解析框架集页面,但是不会下载和解析框架集中单独的框架。
DLCTL_RESYNCHRONIZE 和 DLCTL_PRAGMA_NO_CACHE: 这些标志导致Internet缓冲的刷新。通过 DLCTL_RESYNCHRONIZE,服务器将会被请求更新状态。如果服务器指出缓存信息是最新的,将会使用 缓存文件。通过DLCTL_PRAGMA_NO_CACHE,不管文件的更新状态如何,文件都会被从服务器重新下载。
DLCTL_NO_BEHAVIORS: 行为不被下载并且在文件中被禁用。
DLCTL_NO_METACHARSET_HTML: 忽略在META元素中指明的字符集。
DLCTL_NO_CLIENTPULL: 不运行客户端重定位页面操作
DLCTL_SILENT: 在下载期间没有用户界面显示。
DLCTL_FORCEOFFLINE: 浏览器控件总是在脱机模式中操作。
注:可以在网上寻找About the Browser文件作为参考。
接下来,咱们可以看看常见的IE注册表设置,参见以下列表。
1、Main的设置:
其所在位置是:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
注:对于注册表HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main中其它设置,需要参见ie.reg文件。
2、GLYPHCACHE的设置
其所在位置是: HKEY_LOCAL_MACHINE\System\GDI\GLYPHCACHE
3、Image Caching的设置
其所在位置是:HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Image Caching
小结:
现在还有许多技术可以根据自己的处理来自定义浏览器控件。在这里抛砖引玉,希望可以和大家一起讨论。
我来回答
回答1个
时间排序
认可量排序
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2012-12-04 13:08:38
-
2018-07-26 15:48:32
-
2016-10-19 00:01:15
-
2012-12-04 14:03:14
-
2012-12-05 14:32:53
-
2016-10-12 21:41:00
-
2008-05-27 11:09:53
-
2008-08-18 22:21:13
-
2010-06-01 23:25:04
-
2008-07-24 01:33:17
-
2008-07-18 20:42:04
-
2012-12-04 14:13:12
-
2021-01-04 16:42:18
-
2020-11-21 17:16:33
-
2012-12-05 11:12:01
-
2012-12-05 11:13:14
-
2012-12-05 14:27:39
-
2012-12-05 11:07:55
-
2012-12-05 13:33:42
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认