检测WinHelp是否安装在Vista或者更高版本的Windows上
时间:2020-03-05 18:54:11 来源:igfitidea点击:
有没有可靠的方法来检测WinHelp是否安装在Windows Vista或者更高版本的Windows上?如果可能的话,我想要一个不特定于Windows特定版本的解决方案。
我已将此问题发布到其他留言板上,并在安装Microsoft已记录的WinHelp和注册表项之前和之后获得了有关Winhlp32.exe大小的答案,但它们均不正确。
解决方案
回答
我不想这么说,但是请继续使用WinHelp。它已被弃用是有原因的。我们仅用了几个小时就可以迁移到.chm。使用更新的帮助创作工具非常简单明了,而.chm等更新格式为我们带来了层叠样式表之类的好处。
回答
除了试图说服这种方法的问题,我们还可以查看Windows注册表。
基本上,如果注册了WinHelp,则存在以下注册表项:
- HKEY_CLASSES_ROOT \ .hlp->(默认)= hlpfile
- HKEY_CLASSES_ROOT \ hlpfile \ shell \ open \ command (默认)包含字符串" winhlp32.exe"
如果这两个值都正确,则winhelp可用并已注册。我们也可以从此处检索winhlp32.exe的位置。
回答
从Microsoft下载的WinHelp似乎是一个启用WinHelp程序的修补程序(.msu)。这可以解释为什么大小/注册表键不更改,因为此修补程序只是原始文件的"增量"更改。
由于它是一个修补程序,因此,我们应该能够查询操作系统的已安装修补程序。
以下命令将生成一个.htm文档,其中列出了所有已安装的修补程序。
wmic qfe list full /format:htable >C:\hotfixes.htm
生成的表列出了与所安装的修补程序相对应的知识库文章。我们可以搜索" 917607",因为如果已安装WinHelp修补程序,则应该存在该字段。我们可能可以将不同的选项传递给实用程序,以执行更好的搜索。注意wmic命令需要管理员权限才能运行。
链接到WinHelp上的Microsoft KB文章