使用VB6安装程序安装.ini文件

使用VB6安装程序安装.ini文件,vb6,Vb6,我有一个vb6应用程序,它是参照项目文件夹中的.ini文件编译的。我导入了该文件并将其作为模块添加。这是确保文件随安装程序一起分发的最佳方法吗?理想情况下,文件应存储在程序文件中的应用程序文件夹中。程序文件中的文件夹不可写。像ini文件这样的文件进入AppData\Appname,这在Win 98中是不存在的(VB6的设计目的) 在VB6的安装程序中,可以指定要添加到安装程序中的文件以及将这些文件放置在何处。但是AppPath需要由硬编码的路径指定(可能一个%AppData%\AppFolder

我有一个vb6应用程序,它是参照项目文件夹中的.ini文件编译的。我导入了该文件并将其作为模块添加。这是确保文件随安装程序一起分发的最佳方法吗?理想情况下,文件应存储在程序文件中的应用程序文件夹中。程序文件中的文件夹不可写。像ini文件这样的文件进入
AppData\Appname
,这在Win 98中是不存在的(VB6的设计目的)

在VB6的安装程序中,可以指定要添加到安装程序中的文件以及将这些文件放置在何处。但是AppPath需要由硬编码的路径指定(可能一个
%AppData%\AppFolder
会起作用)

将ini添加到安装程序中,安装在程序文件中,如果AppData中不存在ini,请复制它

C:\Users\User>icacls“%programfiles%”

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

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


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

您的应用程序需要足够复杂,以便在运行时找到该文件夹以使用INI文件

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

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

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


这些都不是VB6应用程序所独有的。

我正在我的工作站点上移植VB6应用程序。它使用一个ini文件,该文件在Windows 7的C:\Program Files\中随附。系统在更新它或添加新条目(新节、新节条目)方面没有问题。所以说程序文件中的文件夹不可写是不正确的。BUILTIN\Users:(RX)@StarPilot:这取决于您在windows中的UAC设置。大多数公司使用默认设置,不允许在程序内的文件夹中写入Files@HrqlsUAC设置只影响管理员。除非应用自定义安全设置,否则受限用户永远无法写入。@Bambilonggo:我在AppData文件夹中的文件有问题,但当我关闭UAC时,我可以再次将它们放在Program files文件夹中。。。不过我是本地管理员,所以可能就是这样(顺便说一句,我的应用程序仍然处理AppData文件夹中的文件,用户在需要时无法再找到日志文件:)
            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)