What is UAC?

With the advent of UAC (User Account Control), beginning with Windows Vista, Microsoft embedded default permissions and behaviors into Windows to ensure that the default environment in which applications are installed and executed is much more secure than previous versions of Windows.

 

What exactly are the UAC rules from a software developers viewpoint?

Window's UAC rules are intended to:

By default, only users with Administrator privileges have access to machine wide settings. Microsoft implemented these rules by carefully limiting default permissions on folders under the Program Files folder tree, the ProgramData folder tree, the Windows folder tree, and the Users folder tree. In addition, permissions to registry keys are carefully limited so that standard users will not be allowed to modify any settings that can affect other users.

 

In order to follow UAC rules a program must:

 Private files would include:

 

Implementing UAC in dBASE Plus Applications:

When installed on Windows Vista, Windows 7, Windows Server 2008, or newer version of Windows, the dBASE Plus 2.70.x Runtime and BDE are configured to default to following the UAC rules automatically unless overridden by application specific settings or an application command line switch.

This default takes care of ensuring that many UAC compatibility issues are handled automatically for you.

However, there are likely to be additional changes or updates required to make an application fully UAC compatible.  

Here are the main steps to consider:

-----------------

Any additional DLL files your application may use should be installed as required by the application. They can be installed into whatever folder the application expects to find them in.

Also note that...

on 64 bit versions of Windows, any 32 bit applications should be installed under:

   C:\Program Files (x86)  instead of C:\Program Files

Registry settings for 32 bit applications should be created under:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

   or under:

      HKEY_CURRENT_USER\Software\Wow6432Node