我被要求更新过去6年一直在WinXP上运行的VB6应用程序.客户端想要使用Windows 7.到目前为止,应用程序将其设置存储在位于应用程序目录中的INI文件中.XP和7之间的一个关键区别是你不能再写C:\Program Files\AppFolder了.
我试图找出文件系统应该存储设置的位置?鉴于应用程序仍然需要在WinXP上运行,我有点困惑.
在WinXP上,我有以下内容:
C:\Documents and Settings\profilename\Application Data
C:\Documents and Settings\profilename\Local Settings\Application Data
Run Code Online (Sandbox Code Playgroud)
在Windows 7上,我有以下内容:
C:\Users\profilename\AppData\Local
C:\Users\profilename\AppData\LocalLow
C:\Users\profilename\AppData\Roaming
Run Code Online (Sandbox Code Playgroud)
这些文件夹中的每一个都有子文件夹,似乎存储各种产品的设置/文件
那2个问题:
我已经阅读了关于这个主题的无数帖子,但无法将我的大脑包裹在整个事物中.我有一个旧的VB6应用程序,用于安装在根目录下的文件夹中.在该文件夹中有子文件夹:
\ data子文件夹,用于访问数据库
\ quotes子文件夹,用户生成的word文档将存储在其中,
\ backup,我的程序定期备份mdb的副本
它运作良好,生活很简单.现在,当我们尝试在Windows 7和Windows 8上安装时,程序将安装到程序文件(x86)文件夹中.程序运行正常,但所有数据库更新和word文件都存储在users文件夹中的虚拟存储中,这不是我们想要的.
我知道为什么会这样,我知道我需要修改我的程序以适应Windows 7/8.有人可以给我一个明确的解释/建议,如何做到以下几点:
我知道"用户"下的appdata文件夹是存储数据库/ word文件/备份的推荐位置.但是,在我隐藏的系统上,我希望用户可以轻松访问它(不是隐藏的),所以我在想MyDocuments文件夹?
我已经读过这个帖子:我应该在哪里存储应用程序特定的设置?这让我对如何在代码中找到文件/位置有所了解,虽然目前尚不清楚如何找到MyDocuments. 有人可以帮忙吗?
这是我变得更加困惑的地方.如果我想使用MyDocuments\CompanyName甚至上面链接中提到的Appdata文件夹, 我如何告诉程序包/部署向导将mdb文件和上述文件夹安装到此特定文件夹中? 我可以使用PDW中的Appdata或MyDocuments文件夹的宏吗?我在XP机器上,因此我的路径与Windows 7/8机器不同.
任何帮助/见解将不胜感激.
客户的应用程序"AppName"将其配置文件存储在CommonAppData中.
C:\Documents and Settings\All Users\Application Data\AppNameC:\ProgramData\AppName如何使用VBScript获取正确的foldername?
我有一个我想为所有用户安装的Visual Basic 6.0应用程序,例如,无论谁登录到计算机,该设置都保存在一个位置.我有以下代码来找到公共位置:
Const ssfCOMMONAPPDATA = &H23
Dim strAllUsersPath As String
strAllUsersPath = CreateObject("Shell.Application").NameSpace(ssfCOMMONAPPDATA).Self.Path
Run Code Online (Sandbox Code Playgroud)
在Windows XP上,此路径指向C:\Documents and Settings\All Users\Application Data\文件夹.设置会在那里复制设置文件,一切都很棒.Visual Basic 6.0应用程序可以随时更改它.
在Windows 7上,此路径指向c:\ProgramData文件夹.需要管理员权限的设置会将文件复制到那里.但是,当我的Visual Basic 6.0应用程序启动并访问该文件时,Windows 7将设置文件复制到C:\ Users {USER LOGIN}\AppData\Local\VirtualStore \并在那里执行所有操作.因此,因为对于每个用户,Windows 7将设置文件复制到单独的用户目录,所以用户最终会拥有不同的设置文件.
我将文件存放在错误的位置吗?我是以错误的方式做的吗?
vb6 ×3
windows-7 ×2
windows-xp ×2
appdata ×1
deployment ×1
settings ×1
vbscript ×1
winapi ×1
windows ×1