The answer to this really comes down to 2 things - what is application data
and what is user data. Application data would be the runtime code that
basically the user needs read (or read / execute) rights on whereas user
data is data the application uses that is changed, lets say by the user.
Generally speaking, application data should exist in a shared location on a
machine, so \Program Files\Vendor\Product on generic 32BIT machines,
\Program Files\Vendor\Product on 64BIT machines if your application is a
64BIT application and \Program Files (x86)\Vendor\Product on 64BIT machines
if your application is 32BIT.
their own, then somewhere like \Users\Username\AppData\Local\Vendor\Product
if the data is only ever going to be used by that application or
\Users\Username\Documents if you want the user to be able to open it with
other things. If the data is shared between different users on the machine,
then \Users\Public is a good location or \ProgramData\Vendor\Product to be
I would also look to use environment variables to obtain the relevent paths,
to ensure the same location regardless of drive configuration etc...
For Program Files use %ProgramFiles% (so %ProgramFiles%\Vendor\Application)
For Program Data use %ProgramData% (so %ProgramData%\Vendor\Application)
For the user's location use %USERPROFILE% (so %USERPROFILE%\Documents or
Be carefull with the registry too - ensure you save application generic
settings to HKEY_LOCAL_MACHINE whereas user-configurable settings to
These are my views anyway - hopefully they will at least put you on the
"Rick Allison" <email@example.com> wrote in message
> I'm not sue this is the right forum, if not please direct me to the
> correct one.
> What is the rule of thumb for where to install software in Vista?
> I'm a software developer. I have an installshield script that installs my
> software in c:\program files\my program file
> With Vista I can still do that but I have an MS Access database and the
> application needs write rights.
> Since c:\program file\my program file is now protected in Vista - What is
> the right place?