我们公司正在将我们的帮助系统迁移到Flare下的HTML5格式。我们还在URI命令行上使用Flare CSHID's将基于主题的访问权限添加到帮助系统中,以便直接访问主题,例如index.html#CSHID = GettingStarted以启动GettingStarted.html帮助页面。对于本地html或文件URL,ShellExecute失败
我们的应用程序使用C++编写,并利用Win32 ShellExecute()函数生成与HTTP关联的默认应用程序以显示帮助系统。我们注意到ShellExecute()在没有指定哈希标签时工作正常,如
ShellExecute(NULL,_T(“open”),_ T(“c:\ Help \ index.html”),NULL,NULL ,SW_SHOWNORMAL);
此功能将启动与查看HTML页面相关的默认浏览器,在这种情况下,File:///协议处理程序将启动,浏览器将启动,您将看到file:/// c:/ Help /index.html在地址栏中。
然而,一旦你添加#信息主题,的ShellExecute()无法打开网页
的ShellExecute(NULL,_T( “开”),_ T(“C:\帮助\ index.html在#cshid = GettingStarted“),NULL,NULL,SW_SHOWNORMAL);
如果浏览器根本打开,那么您将被定向到file:/// c:/Help/index.html,而没有#cshid = GettingStarted主题标识。
请注意,如果通过ShellExecute()使用File协议处理程序,如果帮助系统停留在Web上,并且使用Http或Https协议处理程序,那么这一切都很好。
对于我们的客户,其中一些人在私人局域网中,我们不能总是依赖互联网访问,所以我们的帮助系统必须随应用程序一起提供。