Ich habs gerade nochmal getestet. Es geht einwandfrei. Den Fehler, den ich beim 1. Mal gemacht habe war, das ich eine Manifest Datei fest als Resource eingebunden habe - diese galt natürlich nur für Win XP. Nun habe ich die Resource aus der .dpr rausgenommen und es läuft wunderbar, er zeigt mir mit der Funktion die ich oben gepostet habe, auch die komplette Versionnummer a la 8.0.1.222 an.
Es sei also jedem gewarnt, das XP Manifest in der .dpr zu lassen, besser rausmachen und die Manifest Datei manuell beifügen (oder halt das VISTA Manifest als Resource zu nehmen).
Die Manifest ist wichtig, falls Dein Programm Admin Funktionen braucht, sonst gibts bei mir jedenfalls nen Hänger bei
SQL Query Abfragen.
Ich hab ziemlich viel herumexperimentiert, aber das einzige Template wie hier funktioniert nur.
Eine Beispiel Manifest - Text im Editor einfügen - (Deine Anwendung heisst z.B. MalProgramm.exe dann heisst die Manifestdatei MalProgramm.exe.manifest) -> also speichern unter MalProgramm.exe.manifest
(Parameter nicht gesetzt, achte auf MyApplication sowie MyDescription)
Delphi-Quellcode:
<?
xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-
com:
asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="MyApplication"
type="
win32"
/>
<description>MyDescription</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="
win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-
com:
asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
bei "level" können noch andere Werte eingetragen werden, jedoch weigert sich meine "noch BETA - 6000 Build" irgendwas anderes anzunehmen, das Programm startet erst gar nicht