A special XML-based file that enables System Themes in Windows

For dBASE Plus, this file is named, "Plus.exe.manifest", and resides in the
dBASE Plus install path of the \Bin folder

For all dBASE Plus runtime applications, this file is named for the application name, "Appname.exe.manifest",
and must reside in the same folder as the executable.

 

Some specific notes on a couple of manifest settings...

 

1 - application name section

At the top of the manifest file you need to make sure that the following sections have the correct name of the .exe

here are those sections for the plus.exe.manifest

 

<assemblyIdentity

    version="1.0.0.0"

    processorArchitecture="X86"

    name="PLUS.EXE"

    type="win32"

/>

<description>PLUS.EXE Manifest</description>

 

 

2 - Version 6 common controls section

<dependency>

<dependentAssembly>

<assemblyIdentity

                        type="win32"

                        name="Microsoft.Windows.Common-Controls"

                        version="6.0.0.0"

                        processorArchitecture="X86"

                        publicKeyToken="6595b64144ccf1df"

                        language="*"

                />

</dependentAssembly>

   </dependency>

   

3 - dpiAware section

   <asmv3:application>

      <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">

         <dpiAware>false</dpiAware>

      </asmv3:windowsSettings>

   </asmv3:application>

   

 

Here are all the supported settings within the manfiest file for dpiAware:

To ensure automatic scaling is occurring a setting of 'false' should be used.

Here is a link to msdn where all these settings are described:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa374191(v=vs.85).aspx

Search within this web page for: dpiaware

 

4 - Trusted execution level section

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

<security>

   <requestedPrivileges>

      <requestedExecutionLevel level="asInvoker" uiAccess="false">

      </requestedExecutionLevel>

   </requestedPrivileges>

</security>

</trustInfo>

 

options here are :

will elevate if the current user is an administrator.

When a standard user runs the process, no UAC dialog is shown and the process runs with the standard token.

When an admin user executes, the UAC consent dialog is shown and the process will then run elevated.

You should only use highestAvailable if your program is capable of running with a limited functionality in case the user is not able to elevate.

If your program requires admin rights to function then you need to use requireAdministrator.

When a standard user starts such a process, the over-the-shoulder UAC dialog is shown.

That gives the user an opportunity to ask an admin to supply their credentials.

Basically, "asInvoker" will use the user's default security settings. It's described as "The application runs with the same access token as the parent process.", which means the same security token is used as the calling process, which is typically the desktop shell (or the process that launches this, if you launch your app from another program)