Die UAC wird getriggert durch das sogenannte Application Manifest. Da gibt es einen Eintrag "requestedPrivilege", und der hat 3 Werte:
asInvoker -> kein UAC-Prompt
highestAvailable -> kein UAC-Prompt bei Nicht-Admins, UAC-Prompt bei Admins
requireAdministrator -> immer UAC-Prompt
Bei mmc.exe sieht das z.B. so aus:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
Dieses Manifest kann entweder direkt in der Exe eingebettet sein oder als separate "datei.exe.manifest" Datei dazugelegt werden. Und wenn in Deiner Exe da jetzt "requireAdministrator" steht, dann hast Du verloren. Wenn das allerdings nur daher kommt, daß Windows die Anwendung von sich aus in seiner Kompatibilitätsdatenbank so flaggt, dann hilft das ACT. Oder die externe Manifest-Datei.