Application Manifest options

The Application Manifest tab has some options for which there is not much in the way of explanation;
image

Why would we check/tick (or not) the following settings:

  • Do not use Themed Controls ?
    – is this, perhaps, an old XP setting ?

  • Set dpiAware to true ?
    – Dots-per-inch, presumably ??

  • Controls inside TAB
    – These settings (TRN versus COLOR) are mutually exclusive
    – Why/when would one choose one over the other ?

  • SHEET controls do not use the OS Theme color
    – Is this related in any way with the first option (above) ?

A follow-up question: How do most developers configure their apps for basic user access (AsInvoker, presumably) ?

Regards, John M

Haven’t you tried press F1 while on this page?

By the way, the generated manifest file contains incorrect or missing settings related to dpi (dpiAware, dpiAwareness), I’ve posted in newsgroups a template that fixes the issue.

1 Like

Yes, I have, Mike … that’s why I say there is not much in the way of explanation for any of the options that I list above. They’re mostly a complete mystery (other than what I might guess at).

For just one example (of the 4 I listed); what is “dpiAwareness” ?

John

You can’t get there from the index. My machine’s off, but I think if you search for Application Manifest, you can find a hyperlink in the text of one of the choices, which opens a whole page of what you’re looking for.

Thanks, Jeff - Unfortunately, tho, both methods take us to the same help-page, headed “Manifest Support”, where there’s no explanation for any of the options I’ve listed above.

I’m quite sure, tho, that they’re “non-mysterious” to many readers on this site … ?? ??

John

About dpiAwareness.

Generated manifest has following options:

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

Correct manifest should look like this:

<asmv3:windowsSettings>
  <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True/PM</dpiAware>
  <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
</asmv3:windowsSettings>
2 Likes

re: Set dpiAware to true

I have been trying to get this setting to Work and have never been able to make this work via App + Manifest file generated by Clarion v10 or v11.

Per Mike suggestion, I made corrections to manifest to allow dpiAware setting to work, however this does not have any effect. Just recently, I noticed that CW generated manifest has this entry:

CW generated:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

Correct Entry:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

With above change, now I can see the effect of dpiAware.

demo.zip (30.1 KB)

1 Like

Attached is the template to fix manifest issue.
dpiAwareFix.tpl (4.3 КБ)

3 Likes

Thank you, Mike. This is really helpful and works perfect!!!

Hi,

This JohnM said:
A follow-up question: How do most developers configure their apps for basic user access (AsInvoker, presumably)?

How do they use it?
What are the differences ?
It could be that it is related for example to doing a RUN (‘notepad.exe’) and that the Notepad runs as Administrator?

I honestly do not understand what it is and what it is for and whether or not to include a manifesto.

My very basic understanding is this, Javi;

Without a manifest, Windows assumes the worst (that the app. is capable of executing with extended permissions) and, therefore, each time is is invoked, it seeks OK from the user to allow it to proceed.

Providing a manifest allows the developer to define a specific level of capability for the app. For example, configuring it “AsInvoker” ensures the application will run with no more than the the same permissions as the process that started it … and, therefore, the user is not bothered by the UAC seeking OK-to-proceed.

The aim of my original question was to confirm my understanding, and to find out how most others configure their application manifests … but I didn’t receive much feedback along those lines.

Regards, John M

Too bad nothing was said about how they have configured the manifest.

John, I understand that according to the first image you attached, the best option is to set it the same: the first check mark is unchecked, and the next 3 checked. Correct ?

Javi,
If you develop software, you NEED to understand the basics of manifests.
Part of the confusion is that there is the basic Windows manifest which your app NEEDS. And you can configure the manifest to tweak certain things (such as DPI-awareness). And Clarion uses that tab for other things not directly related to the Windows manifest, such as tab coloration.

Without a manifest your program is subject to virtualization and other weird stuff.

For the basics of Windows manifests, you might read articles I wrote 15 years ago for clarionmag:

https://clarionmag.jira.com/wiki/download/attachments/399450/cmag-2007-04.pdf?api=v2
https://clarionmag.jira.com/wiki/download/attachments/399450/cmag-2007-05.pdf?api=v2

jf

2 Likes

I remember reading your articles, all those years ago, Jane ! … They are the basis for my setting of Execution Level to: asInvoker

That’s how I have been setting the App. Manifest options, Javi - but, I’m not absolutely sure if that’s the best/correct way of doing so. That’s why I asked my original questions.

@Jane ; Might you be able to help us out here, with some explanation of the options offered in the Application Manifest (template) UI … See my OP, above.

Regards, John M