上一篇:并不神奇的Real影片木马 >>
CHM帮助文件的编程实现
关于html help workshop的用法已有文章介绍,在这里笔者着重讲述在实际编程中如何调用chm文件,从而建立起应用程序的帮助系统,本文以visualbasic 6.0为语言平台。
声明htmlhelp api函数
由于htmlhelp api 并没有集成在windows操作系统的api中,因此不能直接调用htmlhelp.lib
库函数,但htmlhelp api的功能位于hhctrl.ocx中,这样可以通过调用hhctrl.lib库函数来显示帮助文件,其声明格式如下:
declare function htmlhelp lib "hhctrl.ocx"alias "htmlhelpa"
(byval hwndcaller as long,
byval pszfile as string,
byval ucommand as long,
byval dwdata as any) as long
具体参数含义如下:
hwndcaller 调用该函数的窗体句柄
pszfile 帮助文件的名称和位置
ucommand 帮助类型
dwdata 与ucommand相匹配的附加参数
定义ucommand 常数
const hh_display_topic = &h0
const hh_display_index=&h2
const hh_help_context = &hf
const hh_display_search= &h3
const hh_display_text_popup= &he
接着指定chm文件的名称和位置:
app.helpfile=app.path & "\sample.chm"
程序调用
调用缺省主题帮助
call htmlhelp(hwnd,
app.helpfile,
hh_display_topic,
byval "default.htm")
此调用方式用于没有上下文id号的情形,dwdata可指定一个在chm文件内的缺省htm文件,也可取null,这是htmlhelp
api最基本的一种用法。
调用关键字帮助
call htmlhelp(hwnd,
app.helpfile,
hh_display_index,
(dword)"关键字"))
此调用方式中dwdata取索引文件(.hhk)中存在的关键字。
调用上下文敏感帮助
call htmlhelp(hwnd,
app.helpfile,
hh_help_context, 1000)
此调用方式用于含有映射信息的chm文件, dwdata取映射表中存在的id号。
调用全文搜索帮助
dim query as hh_fts_query
call htmlhelp(hwnd,
app.helpfile,
hh_display_search,
(dword)& query)
dwdata参数指定一个指向hh_fts_query结构的指针。
调用弹出式帮助
dim popup as hh_popup
call htmlhelp(hwnd,
null,
hh_display_text_popup,
(dword)&popup)
pszfile通常取null,也可以指定一个chm和一个在该chm文件中的text文件,dwdata用于指定一个指向hh_popup结构的指针。
指定显示窗体形式
由于显示帮助文件的缺省窗体是在编译该chm文件时的窗体,因此为了更好地控制帮助文件的显示,在制作chm文件时,可以自定义一个窗体形式。在程序中可以通过两种方法来调用自定义窗体。
1.当ucommand 为hh_display_topic或hh_help_context时,在pszfile参数中用“>”符号,其后跟上窗体名称即可。如pszfile取:
app.helpfile & "> mainwin"
2.用htmlhelp函数直接指定:
dim wintype as hh_wintype
call htmlhelp(hwnd,
app.helpfile &" > mainwin",
hh_set_win_type,
(dword) &wintype)
必须声明的是,以上叙述中使用的“sample.chm”、“default.htm”、“关键字”、“1000”和“mainwin”等均属举例,应用中需要根据自己的具体情况来设置这些参数的实际值。
至此,应用程序的帮助系统就建立起来了,当然,要把帮助系统做得更完美一点,还有更多的工作要做。
()
下一篇:使用Magic Winmail来提升权限 >>
相关文章:
- · QQ 2005贺岁版登录口令加密算法及其源代码
- · 脚本的巧妙应用
- · Linux操作系统12则经典应用技巧
- · 绕过javascript的过滤----Flash!attack漏洞
- · 只用ISO映像文件能装系统
- · 用perl调用系统命令来实现IPC$远程猜解
- · 外挂编写完全攻略
- · 注册表的六种个性化应用
- · 命令行下修改文件访问控制权限
- · SQL Server应用程序中的高级SQL注入
- · leadbbs移花接木漏洞与加入黑客木马
- · XPSP2多线程访问提速秘技
- · Sniffer:黑客入侵最常用的手段
- · CGI安全漏洞资料速查表
- · 浅谈如何针对DDos部署防御措施
- · 什么是 TCP SYN Flood 攻击
- · TCP协议的通讯方式
- · 基于NetBIOS的简单Windows进攻法
- · UNIX及黑客入门的探索与思考
- · 文件扩展名导致的安全问题
- · 黑客攻击步骤-如何获得IP
- · 局域网上网的安全防范与技巧
- · 在2000/xp下禁用USB接口
- · 最全最新的mp3芯片介绍
- · 防止Serv_U6.0.0.2权限提升的方法
- · coms密码无敌破解大法
- · DOS攻击与天网DOS防御网关技术
- · 天网防火墙负载分担技术
- · TCP SYN Flood防御方法
- · TCP SYN Flood检测与防范
- · 使用firefox浏览器的十个理由
- · TCP SYN Flood攻击的机制
- · 微软反间谍软件与恶意软件移除工具之区别
- · PHP网站漏洞的相关总结
- · 如何更改 pcAnywhere IP 端口
- · 系统安全的最小特权原则
- · 防DDoS攻击11招
- · 轻松学习 PKI
