Einzelnen Beitrag anzeigen

Bernhard68

Registriert seit: 2. Mär 2011
4 Beiträge
 
#8

AW: Zugriff auf einen COM-Server aus einem Delphi-Dienst

  Alt 2. Mär 2011, 13:08
Unter Win7 (wohl ab Vista) sind keine interaktiven Dienste mehr erlaubt.
Interaktive Dienste lassen sich zwar noch im Objektinspektor zur Klasse TService und in der Service Management Console (Dienste) noch konfigurieren, sind aber wohl nicht mehr erlaubt.
Möglicherweise ist das, das Problem?!

Im Thread Programm von Dienst starten lassen (Jetzt aber wirklich mal) wird das Thema auch diskutiert, hat mir aber noch nicht weitergeholfen.

Ich will ja, das der Dienst über COM (DLL realisiert COM-Client) den COM-Server (die Anwendung) ausführt, damit niemand sich am Rechner anmelden muss, um die Anwendung zu starten.


Noch ein Querverweis zu diesem Problem: Windows-Dienst als COM-Client. Geht das überhaupt???

In der COM-Client-DLL ist der Aufruf wie folgt (ist zwar C++, dürfte aber wohl nichts zur Sache tun, oder?):

...
Delphi-Quellcode:
Mk_tlb::TCOMIMK_Main comobj;
        
HRESULT hr = CoCreateInstance( Mk_tlb::CLSID_MK_Main, // {82031DB1-8955-4731-9AF6-08121F2331AB}
                  NULL,
                  CLSCTX_LOCAL_SERVER, // CLSCTX_ALL geht auch
                  Mk_tlb::IID_IMK_Main, // {D676B71E-0ACF-427A-A40E-23CCDECDFA29}
                  (void**)
                  &comobj );

bool ok = SUCCEEDED( hr ); // Fehler -2147221008
...

Geändert von Bernhard68 ( 2. Mär 2011 um 13:26 Uhr)
  Mit Zitat antworten Zitat