0

有没有办法在 installshield 2009 中为用户设置一些按摩,以便在以下情况下提示 -

  1. 他们重命名设置或文件名被更改?
  2. 安装程序是从网络位置运行的吗?
  3. UAC 功能何时开启?

任何建议都将受到高度赞赏和欢迎。

谢谢,维迪亚

4

1 回答 1

0

Windows Installer 提供了检测 1 和 2 的属性。

  1. OriginalDatabase属性保存 .msi 文件的路径。
    仔细阅读注意事项:Windows Installer 在缓存包时会重命名包。所以你的安装必须应对这个问题。
  2. SourceDir属性保存包含安装包的目录。
    您必须在使用该属性之前安排ResolveSource操作。同样,您必须小心这一点,ResolveSource例如,不要在卸载期间安排操作。
  3. 据我所知,Windows Installer 不支持直接检测 UAC 是否启用。

如果您想检测引导程序是否setup.exe被重命名或从网络运行,那是另一回事,我无法帮助您。


请说明为什么需要检测这两种情况。

  1. 为什么您的设置的命名方式会有所不同?
    我不认为用户经常重命名设置文件。如果您的安装程序包仅包含在一个文件中,我看不出重命名不好的任何原因。

    Vidya:我不确定,但用户说当他们尝试重命名设置时,他们会收到与某些编译相关的消息,并且设置不允许他们重命名设置。

  2. 如果从网络位置运行设置会发生什么变化?
    可以从网络位置安装 Windows Installer 程序包。在管理安装的情况下,从网络位置执行安装甚至是一种常见的情况。

    Vidya:问题是当我们从网络位置安装 MSI 并尝试对已安装的设置运行更新时,它显示“找不到文件”</p>

  3. 如果您知道 UAC 处于打开或关闭状态,您会在设置中做什么?
    Windows Installer 本身可以很好地与 UAC 配合使用。您只需要关心您编写的自定义操作:它们必须是 UAC 感知的。这一点总结为只有一个要求:只有延迟操作必须对系统进行修改,延迟操作在系统上下文中运行;其他自定义操作在当前登录用户的上下文中运行。在没有 UAC 的情况下,此要求也适用于 Windows XP:在非延迟操作中修改系统设置是一种不好的做法。

    Vidya:基本上,我们希望在 UAC 开启且用户没有管理权限时向用户发送消息,或者只是通知他们在运行设置之前将 UAC 设置为最低。

于 2012-06-30T17:47:01.030 回答