TRegSvr.exe: Das Hilfsprogramm für die Typbibliotheksregistrierung

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Befehlszeilenhilfsprogramme - Index


TRegSvr.exe ist ein Tool zum Registrieren und zum Aufheben der Registrierung von COM/ActiveX-Servern und Typbibliotheken. Mit TRegSvr.exe kann auch nur eine Typbibliothek registriert werden. Dies ist sehr praktisch für Fälle, für die das Marshalling der Typbibliothek ausgeführt, aber das Objekt nicht unbedingt bei COM registriert werden soll. Wenn mit TRegSvr.exe nur eine Typbibliothek für den aktuellen Benutzer registriert wird, ist ein COM-Marshalling auch für einen Benutzer ohne Administratorrechte möglich. TRegSvr.exe wird mit Delphi ausgeliefert und befindet sich im Verzeichnis \bin der Produktinstallation.

TRegSvr kann als Alternative für die folgenden Aktionen zur Registrierung/Deregistrierung (siehe COM-Objekte registrieren) verwendet werden:

  • Befehl "Registrieren" (Start > ActiveX-Server > Registrieren)
  • Befehl "Für aktuellen Benutzer registrieren" (Start > ActiveX-Server > Für aktuellen Benutzer registrieren)
  • Befehl "Registrierung aufheben" (Start > ActiveX-Server > Registrierung aufheben)
  • Befehl Regsvr32 (dokumentiert in der Begleithilfe für den Microsoft Windows Software Development Kit)

Hinweis: Als 32-Bit-Prozess kann die IDE keine 64-Bit-In-Process-/DLL-Server registrieren (32-Bit-Prozesse können keine 64-Bit-DLLs laden). Verwenden Sie zum Registrieren von 64-Bit-In-Process-Servern die 64-Bit-Version von TRegSvr.exe. Der Pfad lautet $(BDS)\bin64\TRegSvr.exe.


Befehlszeilensyntax

>tregsvr <options> <filename>

Options sind die folgenden Befehlszeilenoptionen:

  • -u (deregistrieren)
  • -q (stille Registrierung - keine Ausgabe)
  • -c (für aktuellen Benutzer registrieren/deregistrieren)
  • -t (Typbibliotheksregistrierung)
  • -s (Side-by-Side-Registrierung ohne vollständigen Pfad, zum Registrieren eines Servers, dessen Client/Anwender sich im selben Verzeichnis wie der Server befindet)

Filename ist der Name der Typbibliothek.

Befehlszeilenhilfe

Um die Hilfe für die Befehlszeile anzuzeigen, geben Sie Folgendes ein:

>tregsvr

Der folgende Hilfetext wird von TRegSvr.exe angezeigt:

Embarcadero Turbo Register Server -- COM Server Registration utility.
Version 1.3  Copyright (c) 1997-2010 Embarcadero Technologies, Inc.
Syntax: TREGSVR [options] filename
 -u  =  Unregister server or type library
 -q  =  Quiet (silent) operation
 -c  =  Register or unregister for current user
 -t  =  Register type library (default for .TLB files)
 -s  =  "Side By Side" type library registration (do not use full path)

TRegSvr-Beispielprojekt

Sie können TRegSvr in dem Beispielprojekt "tregsvr" folgendermaßen compilieren:

  1. Wählen Sie Start | Programme | Embarcadero RAD Studio 10 Seattle | Beispiele, und navigieren Sie zum Ordner Object Pascal\VCL\tregsvr.
  2. Doppelklicken Sie auf die Datei tregsvr.dproj.
  3. Klicken Sie in der Projektverwaltung mit der rechten Maustaste auf TRegSvr.exe, und wählen Sie aus dem Kontextmenü Compilieren. Die Ausgabe der Compilierung ist die Datei tregsvr.exe.

Der Quellcode der Beispielanwendung "tregsvr" wird mit den Beispielen in Ihrer Produktinstallation installiert. Sie können auch eine Kopie dieses Beispiels (und anderer Beispiele) aus dem öffentlichen Subversion-Repository unter http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RADStudio_Seattle/Object%20Pascal/VCL/tregsvr auschecken.

Befehlszeilenbeispiele

Der folgende Befehl registriert "server.ocx" für alle Benutzer:

   > tregsvr.exe  c:\dev\myprojects\server.ocx

Dieser Befehl deregistriert den Server "server.ocx" (d.h. der Befehl hebt den vorherigen Befehl auf):

   > tregsvr.exe -u c:\dev\myprojects\server.ocx

Der folgende Befehl registriert die Midas-Typbibliothek für den aktuellen Benutzer:

   > tregsvr.exe -t -c midas.dll

TIPP: tregsvr.exe hat die nicht dokumentierte Option -v, mit der Sie ermitteln können, ob ein Server registriert ist. Das Format lautet:

   tregsvr -v [-c] ServerName

Bei dem angegebenen Namen kann es sich um einen Namensteil handeln. Der folgende Befehl zeigt beispielsweise alle Server an, deren Namen den String "msxml" enthalten:

  > tregsvr -v msxml

Der vorige Befehl erzeugt auf einer Standard-Windows-Installation die folgende Ausgabe, die angibt, dass ein übereinstimmender Server gefunden wurde:


Embarcadero Turbo Register Server -- COM Server Registration utility.
Version 1.3  Copyright (c) 1997-2010 Embarcadero Technologies, Inc.

Searching for typelibrary entries matching "msxml4" in HKLM
-------------------------------------------------------
(1)  : C:\Windows\system32\msxml4.dll
TLB  : {F5078F18-C551-11D3-89B9-0000F81FE221}
DESC : Microsoft XML, v4.0 (Version 4.0)
CLSID: {88D969C0-F192-11D4-A65F-0040963251E5}
CLSID: {88D969C1-F192-11D4-A65F-0040963251E5}
CLSID: {88D969C4-F192-11D4-A65F-0040963251E5}
CLSID: {88D969C5-F192-11D4-A65F-0040963251E5}
CLSID: {88D969C6-F192-11D4-A65F-0040963251E5}
PRGID: Msxml2.DOMDocument.4.0
PRGID: Msxml2.FreeThreadedDOMDocument.4.0
PRGID: Msxml2.DSOControl.4.0
PRGID: Msxml2.XMLHTTP.4.0
PRGID: Msxml2.ServerXMLHTTP.4.0
-------------------------------------------------------
Found 1 entries matching "msxml4" out of 561

Siehe auch