views:

30

answers:

1

I have created an shareware application using vb.net visual studio 2008 for windows desktop, and packaged it using innosetup 5.3.8. The problem is when i have installed the application in C:\Program Files\Application and it runs successfully(use trial period of the application), Im also able to install the application once again freshly with the same setup by installing in different directory.eg C:\Program Files\Application new . The application in C:\Program Files\Application new does not have any settings of the already installed one.

Where do i went wrong . Do i need to take care of this in my application(vb.net) or innosetup. How to take care of the already installed path in innosetup or carry the settings of already installed application to newly installed path by upgrading the older one.

I dont want to write any thing in registry because the application does not want any administrative permission requirements.If i install the application in same path it gets updated with the older settings being taken over to this new one and it works fine.

+1  A: 

Windows applications normally save their settings in the registry under HKEY_CURRENT_USER\Software\YourCompany\YourApp or as files under %APPDATA%\YourCompany\YourApp. Both locations can be written to without admin privileges, and both locations are user-specific. That is, if two users use the same computer, both can use your application with their own settings without affecting the other user.

You should never save any settings under c:\Program Files. Writing to the Program Files folder requires admin privileges. If your application does not have a manifest then writing to Program Files may appear to work. What is really happening is that the files you're writing to the Program Files folder are rerouted to the VirtualStore. Unless the system administrator has disabled the VirtualStore. Then your application will fail.

If you want your application to be robust, it should only save settings to HKEY_CURRENT_USER\Software\YourCompany\YourApp and/or %APPDATA%\YourCompany\YourApp. Your application should use its default setting if no previously saved settings can be found in these locations.

Jan Goyvaerts
thanks for the information jan. But my problem is that the user is able to install the application and use trial version of the application by just installing the application in different folders.
Naresh
If you use the registry or %APPDATA% folder as I mentioned, then your application always saves its settings in the same place, regardless of which folder it is installed into. Store your trial period there too.
Jan Goyvaerts
Also, if somebody gives a good answer to your question, you should mark the answer as accepted by clicking the tick symbol next to it. So far you have asked 5 questions that have been answered, but you haven't accepted any answers.
Jan Goyvaerts
i was searching for marking answered, did not noticed the tick mark right there, thank u.
Naresh