![]() |
Lokalen COM-Server registrieren???
Hallo!
Ich habe in mein Projekt einen lokalen COM-Server eingebunden und möchte diesen registrieren. Wie mache ich das? |
Re: Lokalen COM-Server registrieren???
Du willst die DLL registrieren?
Das geht z.B. so:
Delphi-Quellcode:
Aufruf:
// Register a DLL
function RegisterDLL(dllname: string) : boolean ; type TRegFunc = function : HResult; stdcall; var ARegFunc : TRegFunc; aHandle : THandle; ocxPath : string; begin try Result := true ; if DirectoryExists(ExtractFilePath(dllname)) then ocxPath := dllname else ocxPath := ExtractFilePath(Application.ExeName) + dllname ; aHandle := LoadLibrary(PChar(ocxPath)); if aHandle <> 0 then begin ARegFunc := GetProcAddress(aHandle,'DllRegisterServer'); if Assigned(ARegFunc) then begin ExecAndWait('regsvr32','/s "' + ocxPath + '"'); end; FreeLibrary(aHandle); end else Result := false ; except Result := false ; end; end; // Execute something and wait till finished function ExecAndWait(const ExecuteFile : string; const ParamString : string = ''; const ExecWindowStatus: Integer = SW_NORMAL): boolean; var SEInfo: TShellExecuteInfo; ExitCode: DWORD; begin FillChar(SEInfo, SizeOf(SEInfo), 0); SEInfo.cbSize := SizeOf(TShellExecuteInfo); with SEInfo do begin fMask := SEE_MASK_NOCLOSEPROCESS; Wnd := Application.Handle; lpFile := PChar(ExecuteFile); lpParameters := PChar(ParamString); nShow := ExecWindowStatus; end; if ShellExecuteEx(@SEInfo) then begin repeat Application.ProcessMessages; GetExitCodeProcess(SEInfo.hProcess, ExitCode); sleep(1) ; until (ExitCode <> STILL_ACTIVE) or Application.Terminated; Result:=True; end else Result:=False; end;
Delphi-Quellcode:
RegisterDLL(VollerPfadZuMeinerDLL);
|
Re: Lokalen COM-Server registrieren???
Vielen Dank für die schnelle Antwort!
Nein, das ist keine DLL, sondern eine ausführbare Datei, in die ein COM-Server integriert ist. Diesen Server möchte ich registrieren. |
Re: Lokalen COM-Server registrieren???
regsvr32 <Exename>
|
Re: Lokalen COM-Server registrieren???
Auf der Kommandozeile: <exename> /register
|
Re: Lokalen COM-Server registrieren???
Vielen Dank!
|
Re: Lokalen COM-Server registrieren???
Zitat:
Code:
Es sind Administratorrechte erforderlich!!
C:\Test\> MeinProgramm.exe /regserver
Der Parameter /register funktioniert (zumindest bei älteren Delphi Versionen) nicht. Wenn man das Programm normal ohne Übergabeparameter startet wird ebenfalls eine Registrierung ausgeführt. Der Parameter /regserver bewirkt also nur, dass das Programm nach der Registrierung beendet wird, bevor auch nur das Hautpformular sichtbar wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz