UAC, Shield Icons, and setup programs

A

Anthony Wieser

How does Vista decide that a program is a setup program, and requires
elevation?

I have some installers that don't actually require elevation, yet they're
marked with the little shield icon. Is there a description anywhere of what
actually causes elevation? I can't find an explicit list, and have spent
days searching Google, msdn, and live.com, to no avail.

Does the OS look at the import table for a specific call, is there some
other signature algorithm at work here.
 
D

DevilsPGD

In message <OENVv#[email protected]> "Anthony Wieser"
How does Vista decide that a program is a setup program, and requires
elevation?

I have some installers that don't actually require elevation, yet they're
marked with the little shield icon. Is there a description anywhere of what
actually causes elevation? I can't find an explicit list, and have spent
days searching Google, msdn, and live.com, to no avail.

Does the OS look at the import table for a specific call, is there some
other signature algorithm at work here.

If the file has a manifest that specifies it's requirements, Vista
honours that. Otherwise, any EXE with "setup" or "update" or a few
other keywords will be elevated, as will an MSI.
 
D

Dave R.

DevilsPGD said:
In message <OENVv#[email protected]> "Anthony Wieser"


If the file has a manifest that specifies it's requirements, Vista
honours that. Otherwise, any EXE with "setup" or "update" or a few
other keywords will be elevated, as will an MSI.

Does anyone know what the full list of keywords is? It would be nice to
know so I can tell our developers to avoid them.

Regards,

Dave
 
D

DevilsPGD

In message <[email protected]>
Dave R. said:
Does anyone know what the full list of keywords is? It would be nice to
know so I can tell our developers to avoid them.

I could swear one of our devels email me the list, but I can't find it
at the moment -- Take a stab at MSDN though...
 
A

Anthony Wieser

DevilsPGD said:
In message <OENVv#[email protected]> "Anthony Wieser"
If the file has a manifest that specifies it's requirements, Vista
honours that.

So can I put a manifest in the same folder as a program to state that it
doesn't require elevation? Otherwise, I assume that I need to use the
manifest tool mt to embed the manifest in the exe?

I found some information here:
http://msdn2.microsoft.com/en-us/library/aa905330.aspx
and here:
http://msdn2.microsoft.com/en-us/library/aa480150.aspx

that might be useful to someone else.
 
D

Dave R.

DevilsPGD said:
In message <[email protected]>


I could swear one of our devels email me the list, but I can't find it
at the moment -- Take a stab at MSDN though...

The only good resource I could find in MSDN was in the MS paper "Windows
Vista Application Development Requirements for User Account Control
Compatibility" which says:
Installer Detection only applies to:
1. 32-bit executables
2. Applications without a requestedExecutionLevel
3. Interactive processes running as a standard user with UAC enabled

Before a 32-bit process is created, the following attributes are
checked to determine whether it is an installer:
. Filename includes keywords like "install," "setup," "update," etc.
. Keywords in the following Versioning Resource fields: Vendor,
Company Name, Product Name, File Description, Original Filename,
Internal Name, and Export Name.
. Keywords in the side-by-side application manifest embedded in the
executable.
. Keywords in specific StringTable entries linked in the executable.
. Key attributes in the resource file data linked in the executable.
. Targeted sequences of bytes within the executable.

Note
The keywords and sequences of bytes were derived from common
characteristics observed from various installer technologies.

Now, a couple of questions come to mind. First, is the list an English
language only list, or does the list contain entries from various
languages. Second, what about the "etc."? I still don't have anything
I can take to our development meetings. <sigh>

I'd really like someone from MS to step up here and clear this up, but I
won't hold my breath.

Regards,

Dave
 
A

Antoine Leca

Dave said:
"Windows Vista Application Development Requirements for User Account
Control Compatibility" which says:

Now, a couple of questions come to mind. First, is the list an
English language only list, or does the list contain entries from
various languages.

IANAMD (... MS developper), so this is just a guess.

Given that the trend is toward MUI technology (one-binary-fits-all, and the
localized content is separated into .mui files which are distributed
separately), I guess the list embedded should include the name for any
language. It makes sense as well, since nothing should prevent say a German
to install a program in her mothertongue on an English-speaking computer.

I notice also that with "instal", you're covering a good number of Romance
language, French Installer, Spanish Instalar, Catalan Instal·lació, etc.

(And yes I am hoping "install", with 2 l's, is a typo or more precisely a
defect introduced into the Word document by the cute AutoCorrect
technology...)


Antoine
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top