Guten Morgen DPler,
in meiner Anwendung (Firemonkey/XE2) ist gestern ein Problem aufgetreten, das anscheinend im direkten Zusammenhang mit der d2d1.dll steht.
Dabei geht es darum, dass ich eine beliebige Exe Datei aus dem Programm heraus öffne, welche zum Start Adminrechte benötigt. Dazu benutze ich wahlweise Shellexecute mit runas oder die bekannte runAsAdmin Funktion. Das Ergebnis ist bei beiden gleich.
Jetzt wird die
UAC aufgerufen, die zu startende Exe wird gestartet (und läuft einwandfrei) und kurz darauf knallt es. Der Compiler meldet mir quasi unendlich oft hintereinander eine
Exception in der d2d1.dll.
Daraufhin habe ich nach langer Durchsicht meines Codes beschlossen, mal ein neues Projekt anzulegen (auch Firemonkey, da nur hier der Fehler auftritt) und nur einen Button draufzupacken, der mir bei Klick das runas ausführen soll. Das macht die Anwendung auch. Jedoch trat hier der Fehler auf, dass der Button nach der
UAC Abfrage bei onMouseOver (keine Funktionalität) falsch gezeichnet wird. Er bekommt ja in der Regel eine andere Farbe bei mouseover, nach dem runas wird er fast unsichtbar.
Ich denke mir, ok Firemonkey halt und teste beide Projekte auf einem anderen Rechner. Dort tritt weder die d2d1.dll
exception noch der komische BUtton-Bug auf. Das gleiche an einem 3. Rechner. Am 4. tritt der Fehler wieder auf. Es spielt auch keine Rolle, an welchem Rechner kompiliert wurde.
Es stellt sich heraus, dass die Recher, an denen der Fehler auftritt, eine d2d1.dll vom 13.01.2013 haben. Die
DLL der Rechner, auf denen alles prima funktioniert, ist von 2012 bzw 2011. (Es geht übrigens um Win7, auf anderen Platformen habe ich noch nicht getestet)
Sind derartige Probleme bekannt?
Ich bin auch für Informationen darüber dankber, was die
DLL überhaupt macht, hier war google nicht sehr aussagekräftig.
Danke euch !