我有一个vb6应用程序,它编译引用项目文件夹中的.ini文件。我导入了该文件并将其添加为模块。这是确保文件随设置一起分发的最佳方法吗?理想情况下,文件应存储在Program Files
中的应用程序文件夹中答案 0 :(得分:1)
程序文件中的文件夹不可写。像ini文件这样的文件会进入AppData\Appname
,这在Win 98中是不存在的(VB6是为什么设计的)。
在VB6的安装程序中,您可以指定要添加到设置的文件以及放置它们的位置。但是AppPath需要由硬编码路径指定(也许%AppData%\AppFolder
可以工作)。
添加ini进行设置,将其安装在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个文件失败
答案 1 :(得分:1)
通常,您的安装程序将升级并且足够复杂,可以在LocalAppData特殊文件夹下创建特定于应用程序的文件夹。然后,它将在该文件夹上设置适当的安全性,以允许标准用户读取和写入您的INI文件。最后,它会将您的INI文件部署到该文件夹中。
您的应用程序需要足够复杂,以便在运行时找到该文件夹以使用INI文件。
如果您使用的安装程序技术没有这种灵活性,则可以将INI文件作为“首次运行检测”的一部分进行查找。如果文件丢失,它可能会重新运行,需要提升或生成一个提升的帮助程序来创建文件夹,在其上设置适当的安全性,并复制到原始的INI文件中。
无法处理文件夹安全性会有问题,因为这些位置会继承“所有者”安全性,只有文件创建者才具有完全的读/写访问权限。
这些都不是新的,这些是自IE4提供Windows 95桌面更新以来至少1997年以来的部署规则。人们在Win9x下躲过谋杀,因为没有有效的安全措施,而且在NT上直到Vista,过度使用管理员和高级用户帐户来绕过安全性,使其感觉像Win9x。
这些都不是VB6应用程序独有的。