PDA

View Full Version : Vista Permission Problem



Vikram
12-07-2009, 02:42 AM
Hi,

my installation works fine in Xp. but In vista, If install just with double click in setup file then all files installing alright but my database gives me error. I am using MSAcess with Vb6. But if I install with right click on setup and run as asministrator then install fine.

but now what ever changes I am doing in database with program I am not able to watch that changes directly with opening database. Even If I delete my database then also program is working fine and connecitng with database as well.. I know this might be because of more then one database but I am using brand new system to test this. So, there is not any thing like more then one databases. But this may be with permissions of vista.

Please help,

If I install the program in C drive in place of program file then it is working fine and I can see database and all woklring fine. I mean in properway in which it should be.

thanks
Vikram

linder
12-07-2009, 02:48 AM
Vikram,

Your program is not UAC-aware (you'll see the same problem with your app on all UAC-aware operating systems -- that is Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2).

So what you have to do is to make your application UAC-aware. Otherwise, you'll run into a support nightmare. As a side note, your program will also not work in a "locked down" environment (e.g. Limited User under XP).

BTW, this is NOT an installation problem! Your application does not follow the Windows development guidlines.

Does this help?

Friedrich

linder
12-07-2009, 02:58 AM
The following is a very brief description of how to make your application "UAC-aware"

-- Standard Application:

1. Embed an UAC manifest into your main application (.EXE). A manifest basically tells Windows how aware the program is about the recent Windows versions (and disables "Virtualization"). You should include a manifest for Windows 7 (it's fully backward compatible with all previous Windows versions).

2. Request "asInvoker" execution level privileges through the manifest for your application.

3. Code-sign all your application files (e.g. .EXE, .DLL).

4. Your application should not depend on any administrative APIs.

5. Do not write per-user information or user-writable information to Program Files or Program directories.

6. Do not write to any other protected Windows area (e.g. the OS drive root folder, the "Windows" folder tree, etc.).

7. Do not write to the HKEY_LOCAL_MACHINE or any other protected registry key.


-- Standard Installation:

1. Use an UAC-aware installation system. By default, installations run elevated.

2. Install applications per-machine (all users) and store per-user data in different locations.

3. Do not install Quick Launch shortcuts.

4. Never write to per-user locations from the elevated running installer. That means, never write to the HKEY_CURRENT_USER registry key or to per-user file locations.

5. Launch applications non-elevated at the end of the installation process.

6. Code-sign the installer.

Note: if you have to install "per-user" data, install it to a common location and as a "first run" action of your main application, copy the data from the common location into a per-user location.

Respect the recommended (default) locations for applications and data files, but provide users with an option to select another installation location for both. A true "Mixed User Application" should work elevated and non-elevated.

That's it :)

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows 7 installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner