I noticed the following phenomenon:
An executable built with Delphi 7 and part of the name including "Update" (e.g. "UpdateMyApp.exe") causes UAC to step in to display a warning like "do you want to allow the program to make changes to your computer".
This happens with a simple hello world application. Showing the file in explorer shows the shield symbol overlayed to the application icon.
As soon as you rename the exe the shield disappears and the application starts without warnings.
As mentioned this only happens to programs built with Delphi 7 and started on Windows 7 (I assume same on Vista) but not on e.g. WinXP.
A quick check with Delphi 2007 shows that this problem is gone.
Funny… scarying…
Besides renaming the file, what can I do to prevent this?
Best Answer
This behavior is caused because the applications build with Delphi 7 by default does not have a manifest, or have one with no
requestedExecutionLevel
attribute. Because of that Windows thinks that you need administrator access when your application name contains words likeSetup
orUpdate
. this process is calledInstaller Detection Technology
and was introduced alongside UAC with Windows Vista.From the MSDN site:
Moreover Delphi 2007 by default include a manifest in your applications with the
requestedExecutionLevel
key.This is a sample manifiest created by delphi 2007. You can see that this manifest has the
requestedExecutionLevel
attribute in the content.