【问题标题】:Install .ini file With VB6 Setup使用 VB6 安装程序安装 .ini 文件
【发布时间】:2014-12-09 20:51:32
【问题描述】:

我有一个引用项目文件夹中的 .ini 文件编译的 vb6 应用程序。我导入了文件并将其添加为模块。这是确保文件与设置一起分发的最佳方法吗?理想情况下,该文件应存储在 Program Files 中的应用程序文件夹中

【问题讨论】:

    标签: vb6


    【解决方案1】:

    Program Files 中的文件夹不可写。像 ini 文件这样的文件进入AppData\Appname,这在 Win 98 中不存在(VB6 的设计目的)。

    在 VB6 的安装程序中,您可以指定要添加到安装程序中的文件以及放置它们的位置。但 AppPath 需要通过硬编码路径指定(可能%AppData%\AppFolder 可以)。

    将ini添加到setup,安装在ProgramFiles中,如果AppData中不存在,复制过来。

    C:\Users\User>icacls "%programfiles%"

    C:\Program Files NT SERVICE\TrustedInstaller:(F)

                NT SERVICE\TrustedInstaller:(CI)(IO)(F)
                NT AUTHORITY\SYSTEM:(M)
                NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
                BUILTIN\Administrators:(M)
                BUILTIN\Administrators:(OI)(CI)(IO)(F)
                **BUILTIN\Users:(RX)**
                BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
                CREATOR OWNER:(OI)(CI)(IO)(F)
    

    成功处理了 1 个文件;处理 0 个文件失败

    【讨论】:

    • 我正在我的工作场所移植一个 VB6 应用程序。它使用一个 ini 文件,该文件在 Windows 7 的 C:\Program Files\ 中随它一起运行。系统更新它或添加新条目(新部分,新部分条目)没有问题。所以说 Program Files 中的文件夹不可写是不正确的。
    • BUILTIN\Users:(RX)
    • @StarPilot :这取决于您在 Windows 中的 UAC 设置。大多数公司使用默认设置,不允许在 Program Files 内的文件夹中写入
    • @Hrqls UAC 设置仅影响管理员。除非应用自定义安全设置,否则受限用户永远无法写入。
    • @BambiLongGone :我在 AppData 文件夹中的文件有问题,但是当我关闭 UAC 时,我可以再次将它们放在 Program Files 文件夹中......虽然我是本地管理员,所以可能是这样(顺便说一句,我的应用程序仍然可以处理 AppData 文件夹中的文件,用户只是在需要时找不到日志文件:))
    【解决方案2】:

    通常情况下,您的安装程序会以提升的方式运行,并且足够复杂,可以在 LocalAppData 特殊文件夹下创建一个特定于应用程序的文件夹。然后它将在该文件夹上设置适当的安全性,以允许标准用户读取和写入您的 INI 文件。最后,它会将您的 INI 文件部署到该文件夹​​中。

    您的应用程序需要足够复杂才能在运行时找到该文件夹​​才能使用 INI 文件。

    如果您使用的安装程序技术没有这种灵活性,则可以在“首次运行检测”中查找 INI 文件。如果文件丢失,它可能会重新运行自身,需要提升或生成提升的帮助程序来创建文件夹,为其设置适当的安全性,然后复制原始 INI 文件。

    未能处理文件夹安全性将是一个问题,因为这些位置继承了“所有者”安全性,其中只有文件创建者具有完全的读/写访问权限。

    这些都不是新的,至少从 1997 年左右 IE4 交付 Windows 95 桌面更新以来,这些都是部署规则。人们在根本没有有效安全性的 Win9x 和 NT 直到 Vista 上通过过度使用管理员和超级用户帐户来绕过安全性以使其感觉像 Win9x,从而逃脱了谋杀。

    这也不是 VB6 应用程序独有的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      相关资源
      最近更新 更多