2 Stimmen

Registrieren Sie das COM-Objekt beim ersten Programmstart

Ich habe eine Delphi-Anwendung mit einem Automatisierungsobjekt. Am Anfang des Programms möchte ich das COM-Objekt automatisch in der Registrierung registrieren (anstatt den /regserver-Schalter zu verwenden).

Die alte Version des Programms wurde in Delphi 7 geschrieben und ich glaube mich zu erinnern, dass diese Version sich nach dem Programmstart selbst registriert hat. Aber jetzt ist es mit D2009 kompiliert und registriert sich jetzt nicht mehr automatisch. Vielleicht weiß jemand etwas darüber?

Vielen Dank!

7voto

David Heffernan Punkte 585606

Dies scheitert wahrscheinlich, weil Sie auf einem Rechner mit UAC laufen und keine Rechte zum Schreiben in HKLM haben. Eine zufriedenstellende Lösung mit dem /regserver-Schalter zu finden wird daher nicht gelingen, da immer versucht wird, dort zu schreiben.

Sie könnten auf Registry-freies COM umsteigen, obwohl es möglicherweise besser wäre, die Registrierung im Rahmen der Installation durchzuführen. Denn dann wird erwartet, dass Sie es tun, da Sie zu diesem Zeitpunkt ausreichende Rechte haben.

4voto

Mikael Eriksson Punkte 132244

Sie können ComServer.UpdateRegistry(True); verwenden, um Ihre COM-Objekte zu registrieren, und ComServer.UpdateRegistry(False); um sie abzumelden.

ComServer befindet sich in ComServ.pas

http://docwiki.embarcadero.com/VCL/de/ComServ.TComServer.UpdateRegistry

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X