I’m using a very old version of InstallShield Express 4 to package my VB6 application. Installing it on XP, it works great. But when I install it on a Windows 7 box, not using the “run as administrator”, everything seems to be read-only. I can’t edit an INI file because access is denied. The application just doesn’t function properly. It’s almost like it can’t even access the folder. And it’s installed in the default “program files” folder. I uninstall the application, reinstall using the “run as administrator” option, set compatibility of the short cut to “run as administrator”, and everything works fine.
My question is this something inherited in VB6 where the application has to run as administrator or is it an InstallShield issue? And if it is an InstallShield Express issue, would the latest version of InstallSheild Express 2012 fix this? I would prefer the user not have to worry about installing or running the application as an administrator.
Nothing is specifically wrong with your VB6 application. I would say it’s the older version of InstallSheild which might be the problem in this case.
The feature is called User Access Control (UAC) that has been introduced in Windows Vista and the following Microsoft operating systems to prevent arbitrarily write access into
%ProgramFiles%by applications. You can still perform it manually (by copying and pasting files into %ProgramFiles%) but UAC will prompt for your permission.To make sure your application behaves expectedly, save application settings in
%APPDATA%or in registry, NOT in %ProgramFiles% directory. During installation or uninstallation of your program which requires write access into%ProgramFiles%, you’ll have to run it as administrator (unless of course you have UAC disabled which is a massive security risk and strongly recommended against).