【问题标题】:Running an installer or checking to see if a program is installed运行安装程序或检查是否安装了程序
【发布时间】:2010-10-06 00:25:26
【问题描述】:

我有一个想用作自动运行的程序。我希望它能够做三件事。它需要检查是否安装了特定程序,如果没有,则向用户提供安装它的选项。其次,如果程序已安装,向用户提供运行和卸载的选项,第三,向用户提供查看自述文件的选项。

如何让程序检查是否已经安装了另一个程序? 如何从另一个程序启动安装程序/卸载程序?

谢谢。

附:我可以修改安装程序。

【问题讨论】:

    标签: c# visual-studio-2008 .net-3.5 installation


    【解决方案1】:

    假设它是您的程序并且您正在构建安装,我只需让您的安装程序写入注册表项,然后在您的自动运行程序中检查该键。

    要从您的自动运行程序启动安装程序,只需运行 setup.exe,或使用 MSIEXEC 获取 MSI。

    【讨论】:

    • 这只是在重新发明*。为什么不使用现有的受支持机制?
    • 它更简单,适用于非 MSI 安装程序,我不会考虑读取“不受支持”的注册表项 ;)
    【解决方案2】:

    假设您的安装是基于 Windows Installer 的,那么您需要的一切都是 here

    【讨论】:

    • 我不知道如何使用它来判断程序是否已经安装。
    • 您可以使用 MsiEnumProductsEx 函数并将您感兴趣的程序的产品代码传递给它。
    最近更新 更多