代码之家  ›  专栏  ›  技术社区  ›  villintehaspam

每个用户和Windows安装程序的启动应用程序

  •  1
  • villintehaspam  · 技术社区  · 14 年前

    我有一个为每台机器安装的应用程序(因为它使用服务)。应用程序的一部分是系统托盘应用程序,它允许登录用户监视服务操作。我正在尝试找出如何最好地安装这个监视器应用程序。

    应允许每个用户配置他/她是否希望在登录时运行监视器应用程序。这意味着hklm/software/microsoft/windows/run键已用完-这只允许为所有用户配置。

    当然,也有相应的hkcu密钥,但是,如果只安装到该密钥,则仅适用于安装应用程序的用户。

    这样的问题 Launch app on startup for all users, but also allow per-user setting (Windows) 指的是简单地拥有一个用户可配置的regkey或类似的技术,启动应用程序将在上检查该技术,以确定是否运行。但这意味着应用程序必须启动才能检查该值,如果可以避免的话,我宁愿不膨胀用户的启动。这种方法的好处是可以在卸载时删除regkey。

    完成安装部分的另一种方法可能是使用 Active Setup 要在登录时创建hkcu regkey,这是未记录的,但在我看来,如果卸载应用程序,就没有简单的方法卸载regkey?我假设将注册表值保留在hkcu的run项下可能会在卸载后给用户带来问题。

    有没有一种标准的方法来处理每个用户使用Windows Installer启动的应用程序?尤其是以后如何卸载这些组件?

    3 回复  |  直到 13 年前
        1
  •  1
  •   ewall    14 年前

    在我看来,你已经接近回答你自己的问题了。我认为您可能只需要划分配置是否为每个用户自动运行的职责…呃,让我解释一下:

    You can use either a self-healing component of HKCU Registry keys or ActiveSetup to ensure that every user gets the configuration .

    如果使用hkcu注册表项,您的msi安装程序需要有一个组件,它的“密钥文件”作为hkcu项-因此,当第一个新用户启动该程序时,Windows安装程序将进行自我修复以写入这些项。其中一个条目是您的hkcu/software/microsoft/windows/run值,但是 关键值,因为您希望用户能够删除它,而不是让它在每次运行程序时都返回!然后,您希望您的程序有一个删除自动运行值的选项。

    如果你使用activesetup(我会推荐它,因为它是 simple 它“只起作用”),那么你可能会发现制作一个简单的应用程序(或vbscript等)是最容易的,它会提示用户是否想让监控程序自动运行。所以您的activesetup会启动prompt程序/脚本,prompt程序会创建hkcu/software/microsoft/windows/run值,或者更好的方法是在用户的start menu\program s\startup目录中创建一个快捷方式。

        2
  •  0
  •   Hans Olsson    14 年前

    可能有点低技术,但你不能添加一个快捷方式到用户的启动文件夹(开始菜单/程序/启动)?

        3
  •  0
  •   Sharjeel Aziz    14 年前

    我想在这种情况下您应该使用hklm/software/microsoft/windows/run。在启动时运行监控应用程序的功能是否真正属于监控应用程序,而不是安装程序。登录时,监控应用程序可以检测这是否是第一次运行监控应用程序,并向用户提供在启动时始终运行监控应用程序的选项。