Ich habe ein Updatetool für mein Programm erstellt, dass automatisch beim Windows-Start ausgeführt werden soll. Bei ausgeschalteter Benutzerkontensteuerung (
UAC) funktioniert alles wunderbar. Ist Benutzerkontensteuerung aktiv, startet mein Programm nicht automatisch. Stattdesen erscheint beim Windows-Start ein TrayIcon mit der Balloon-Meldung, dass einige Autostartprogramme geblockt wurden und eine Ausführungserlaubnis benötigen. Beim Klick auf dieses TrayIcon erscheint ein Kontextmenü, in dem mein Programm als einziges geblocktes Programm drin steht. Ich wähle mein Programm aus, ein
UAC-Fenster erscheint, ich bestätige - und erst dann wird mein Updatetool gestartet.
So geht das nicht!!!
Als ich vor einigen Monaten zum ersten mal mit diesem Problem konfrontiert bin, habe ich ein bisschen geforscht und herausgefunden, dass alle Autostartprogramme anderer Hersteller, die trotz aktiver Benutzerkontensteuerung normal starten, über ein digitales Zertifikat verfügen. So habe ich mir auch ein "Class 3 Code Signing" Zertifikat bei VeriSign erworben. Doch auch digital signierte Datei lässt sich beim Windows-Start nicht ausführen! Lediglich die
UAC-Meldung hat sich geändert. Früher erschien eine furchterregende Meldung der Benutztekontensteuerung, dass es sich beim Autostartprogramm um ein Produkt des "unbekannten Herausgebers" handelt. Jetzt wird der im Zertifikat kodierter Herausgeber erkannt und eine einfache Ausführungsbestätigung verlangt. Doch das eingentliches Problem besteht nach wie vor.
Warum startet mein Programm nicht automatisch?! Was will Windows Vista noch von mir?! Mein Programm ist absolut harmlos, verursacht 100% keine Schäden an dem PC. Und trotzdem wird es blockiert. Warum starten alle anderen Autostart-Programme ohne Probleme? Muss ich meinem Delphi-Kode etwas Besonderes hinzufügen, um dem
UAC mitzuteilen, dass mein Programm in Ordnung ist?
HILFE!!!