找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 926|回复: 6

[求助] [求助]:关于如何在程序中调用帮助文件?

[复制链接]
发表于 2005-10-12 09:52:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的程序如下,为何打不开.chm后缀的帮助文件?是不是前面的应用程序名不对?
(action_tile "help" "(startapp \"winhlp32\" \"C:/Program Files/LYDIM/lydimhelp.chm\")")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6530个

财富等级: 富甲天下

发表于 2005-10-12 10:27:27 | 显示全部楼层
可以试试Lisp的函数 Help。
(action_tile "help" "(help \"C:/Program Files/LYDIM/lydimhelp.chm\")")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-12 10:45:23 | 显示全部楼层
问题已经解决,谢谢这位仁兄!我还有一个问题。现在的帮助文件打开后界面如下。不是我想要的结果:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-12 10:47:43 | 显示全部楼层
应该打开后直接是“欢迎界面”,如何操作?应该如下:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2005-10-12 11:11:00 | 显示全部楼层
你可以研究一下help函数和setfunhelp函数的参数,具体我也没用过,不能多说,我这里只有R14的中文帮助,贴出来,你看看。
[php]help 调用帮助工具

(help [helpfile [topic [command]]])

helpfile 参数是一个用于指定帮助文件的字符串。如果指定的是一个 AutoCAD 的帮助文件 (.ahp),help 函数将使用 AutoCAD 的 Help 浏览器来显示该文件。如果指定的是一个 Windows 的帮助文件 (.hlp),help 函数将使用 WinHelp 程序来显示该文件。如果 helpfile 参数是空字符串 (""),或省略了该参数,AutoCAD 将使用缺省的 AutoCAD 帮助文件。参数 topic 是一个关键字,用于指定帮助工具最初显示的主题。如果 topic 参数是空字符串 (""),帮助工具将显示帮助文件的绪论部分。command 参数是一个指定帮助窗口初始状态的字符串,其取值如下表所列:

command 参数的取值

字符串        说明
HELP_CONTENTS        显示帮助文件中的第一个主题
HELP_HELPONHELP        显示的主题为“如何使用帮助的帮助”
HELP_PARTIALKEY        显示搜索对话框,将 topic 参数传过来的字符串作为初始搜索文本
如果指定的是 Windows 帮助文件,command 参数也可以是由 WinHelp() 函数的 fuCommand 参数所使用的一个字符串,WinHelp() 函数的定义可参见 Microsoft Windows SDK 中的 WinHelp API。
helpfile 参数中并不强制性地要求有文件扩展名。如果提供了扩展名,AutoCAD 仅搜索该文件;如果没有提供扩展名,将采用如下搜索规则:先加 .hlp 扩展名,如搜索不到再加 .ahp 扩展名搜索。
help 函数返回给应用程序的唯一错误条件是由参数 helpfile 指定的文件不存在。所有其他的错误条件都通过对话框报告给用户。如果调用成功,help 函数返回 helpfile 字符串,否则它返回 nil。如果不带任何参数调用 help 函数,那么成功时它返回空字符串 (""),否则它返回 nil。

下列代码调用 help 函数显示帮助文件 achelp.ahp 中 MYCOMMAND 主题的信息:

(help "achelp.ahp" "mycommand")

请参见  关于如何创建 AutoCAD 帮助文件的详细信息,请参见自定义联机文档,而 setfunhelp 函数用于将上下文相关帮助(用户按下 F1 键时得到的帮助)与一个用户自定义命令联系起来。[/php]

[php]setfunhelp 给帮助工具注册一个用户定义函数,这样,当用户在命令行请求帮助时,就会调用正确的帮助文件和主题

(setfunhelp c:fname [helpfile [topic [command]]])

c:fname 参数是一个字符串,它指定用户定义的命令名(C:XXX 函数),该命令必须包括 C: 前缀。与传给 defun 函数的函数名写法不同,setfunhelp 函数的 function 参数必须是加双引号引起来的字符串。其余的三个可选参数指定帮助文件的调用方式,它们也是字符串类型的,且与调用 help 函数所指定的参数相同。如果调用成功,setfunhelp 函数返回作为 c:fname 参数传递的字符串;否则它返回
nil。

不要求 helpfile 参数带文件扩展名。如果提供了文件扩展名,AutoCAD 仅搜索指定文件。如果没有提供文件扩展名,则按如下搜索规则搜索:如果是在 Windows/NT 版的 AutoCAD 下,加上 .hlp 扩展名,否则加上 .ahp 扩展名。如果没有找到 <filename>.ahp 文件,搜索不带扩展名的 <filename> 文件。注意是在最后搜索不带扩展名的文件,所以在 UNIX 系统上,在搜索 acad 文件之前先搜索 acad.ahp 文件。

应该注意的是,setfunhelp 函数仅检查 c:fname 参数是否带有前缀 c:。它并不检查 函数是否存在或其他参数是否正确。

当用 defun 函数定义一个 C:XXX 类型的函数时,它会取消由 setfunhelp 注册的同名函数(如果存在的话)。因此,只能在调用 defun
函数定义一个用户定义的命令后,才能调用 setfunhelp 函数。

下面的例子用 defun 函数定义一个用户定义命令 MYFUN,用 setfunhelp 函数注册该函数名,并使它与 myhelp.ahp 文件的 myfun 主题联系起来:

(defun c:myfun ()

...
        (getint "gimme: ")
        ...
)

(setfunhelp "c:myfun" "myhelp.ahp" "myfun")

命令:  myfun

gimme:  'help

假设 AutoCAD 的帮助文件 myhelp.ahp 存在于支持路径中,则 AutoCAD 会显示包含 myhelp.ahp 文件中的 myfun 主题的帮助对话框。

请参见  defun 和 help 函数[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-12 12:52:35 | 显示全部楼层
感谢你提供的资料,我再找找看。帮助文件方便以前一直没做过的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-12 14:09:07 | 显示全部楼层
试试:
(action_tile "help" "(myhelp)")

(defun myhelp()(startapp "hh.exe" (findfile "C:/Program Files/LYDIM/lydimhelp.chm")))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 17:04 , Processed in 0.351781 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表