WinZip有环境变量或等价物吗?

时间:2010-07-21 19:29:46

标签: c++ windows winapi windows-xp environment-variables

是否有WinZip32.exe的环境变量或等效项我可以用来查找它的位置路径?

编辑 - 这是受控系统的内部工具。

感谢。

3 个答案:

答案 0 :(得分:2)

您可以访问注册表并使用查找相关程序的.zip文件。不管怎样,这会更好,因为不是每个人都使用WinZip。

答案 1 :(得分:1)

安装人员通常会在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下存储有用的信息,但实际的密钥并不总是很容易找到,而且存储的信息因安装程序而异。

看起来WinZip(至少14.5)正在使用基于MSI的安装程序,因此您需要找到它的密钥(在我的案例中为{CD95F661-A5C4-44F5-A6AA-ECDD91C240BD})然后阅读{{1} } key(完整路径InstallLocation)。

P.S。如果WinZip太麻烦你总是可以选择其中一个提供命令行版本的免费替代品,例如7-Zip,你可以在已知位置安装/复制。

答案 2 :(得分:1)

  

是否有WinZip32.exe的环境变量或等效项我可以用来查找它的位置路径?

你可能 可以从注册表中提取程序位置。大多数程序将其设置存储在HKEY_LOCAL_MACHIN / Software / VendorName / ProgramName或HKEY_CURRENT_USER / Software / VendorName / ProgramName中。其中VendorName是公司名称,ProgramName是程序名称。那些设置 MAY 包括安装路径。当然,在HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall中的某处有卸载信息但是,依赖它们中的任何一个都不是一个好主意 - 设置格式可能会在下一个版本中更改,而某些用户(像我一样)即使他们仍然有程序,也倾向于从注册表中获取额外的值。因此,如果设置了这些值,则无法保证程序存在,并且如果缺少这些值,则无法保证它不存在。

正确的解决方案取决于你将如何处理winzip。

如果您想用程序提取* .zip文件,您有两种选择:

  1. 使用某种处理zip文件的库。
  2. 在程序中包含compact * .zip-comptaible archiver(可能是命令行)。
  3. 如果要为用户打开winzip中的文件,那么正确的方法是打开使用与用户系统上的* .zip相关联的任何程序,而不是强制用户使用winzip。我相信使用程序打开文件(当前与该文件类型相关联)可以使用ShellExecute

    完成