How to write to the common Application Data folder?

appdata, userappdatapath, vb6, windows-7, windows-xp

Solution

This one has bitten me too. The `ProgramData` folder has shared Read Access, no shared write access. You can of course change the permission on the folder during install, but I think that goes contrary to how Microsoft meant it to be. See this other question for some useful links

How Microsoft thinks it should be done.

Problem

I have a Visual Basic 6.0 application that I want to install for All Users, for example, the setting are held in a single spot regardless who logs into the computer. I have the following code to locate the common location: ``` Const ssfCOMMONAPPDATA = &H23 Dim strAllUsersPath As String strAllUsersPath = CreateObject("Shell.Application").NameSpace(ssfCOMMONAPPDATA).Self.Path ``` On Windows XP, this path points to `C:\Documents and Settings\All Users\Application Data\` folder. The setup copies the settings file there and everything is great. The Visual Basic 6.0 app can change it at any time. On Windows 7, this path points to `c:\ProgramData` folder. The setup, which requires administrator privileges, copies the file there. However, when my Visual Basic 6.0 application starts and accesses the file, Windows 7 copies the settings file to a C:\Users{USER LOGIN}\AppData\Local\VirtualStore\ and performs all the operations on it there. As a result, because for each user, Windows 7 copies the settings file to a separate user directory, the users end up having a different settings file. Am I storing the file in the wrong location? Am I doing it in the incorrect manner?

Original source

Related problems