Announcement

Collapse
No announcement yet.

COM-Server mit Parameter starten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • COM-Server mit Parameter starten

    Ich erzeuge über CreateOleObject COM-Objekte eines COM-Servers (Local Server als .exe) wobei das Serverprogramm automatisch gestartet wird. Der Startvorgang des Servers wird durch Startparameter gesteuert welche ich übergeben möchte.

    Wie übergebe ich einem Local Server im .exe format beim automatischen starten Parameter?

    Gruß
    Tim

  • #2
    Möglichkeiten:

    - Einträge in Registry, die beim Start ausgewertet werden
    - Properies, die nach dem Start gesetzt werden (oder eine Init-Funktion die immer vor allen anderen Funktionen aufgrufen werden müssen)

    Comment


    • #3
      hmmm... aber der Start der Anwendung bzw. des COM-Servers geschieht ja automatisch im Hintergrund, nachdem ich über CreateOleObject, von einem Client aus, eine COM-Object Instanz dieses Servers erzeugt habe.

      Mir ist im Moment nicht klar wie ich der Server-Application Parameter mitgeben kann, da ich ja keinen expliziten Aufruf dieser .exe mache (passiert ja im Hintergrund).

      Wo und wie muß ich die Startparameter eintragen/übergeben?

      Gruß
      Ti

      Comment


      • #4
        Wie schaut die Schnittstelle des Servers aus? Kannst Du einfach in Delphi importieren und ansehen, wenn Du über die Menüpunkte "Komponenten/ActiveX importieren" bzw. "Projekt/Typbibliothek importieren" gehst und in der Auswahlliste deinen Server auswählst. Damit kannst Du auch dann die frühe Bindung verwenden, statt Blindlings wie es bei CreateOleObject nötig ist auf die späte Bindung zu setzen.

        Die erzeugte Pas-Datei beinhaltet nach dem Import die Schnittstelle der Serverkomponente in Pascal-Form. Und dort gibt es i.d.R. auch Properties, welche Du setzen kannst (um damit den Server zu beeinflussen)

        Comment


        • #5
          Späte Bindung ist gewollt und wohlüberlegt, da die Clients keine Möglichkeit haben die *_TLB.pas einzubinden.

          Mein Server implementiert 3 Schnittstellen, welche ich auch korrekt im Typbibliothekseditor sehe. Nur sehe ich keine Properties die ich nutzen kann um dem Server einen Parameter beim Start mitzugeben.

          Welche Properties meinst du und wo kann ich sie finden?

          Nochmal:
          Mein einziges Problem ist dem Serverprozeß (Local Server im .exe Format) beim automatischen Start einen Parameter mitzugeben. Das muß doch irgendwie möglich sein, oder?

          Gruß
          Ti

          Comment


          • #6
            hmmm... hab ich mich unklar ausgedrückt oder warum hilft mir niemand mit seinem KnowHow weiter?
            Ich denke mal das ist keine exotische Sache dem Serverprozeß beim Start Parameter mitzugeben, nur wie??? Was übersehe ich?

            Kann jemand helfen?

            Danke im voraus
            Ti

            Comment


            • #7
              Hallo,

              &gt;Ich denke mal das ist keine exotische Sache <br>
              &gt;dem Serverprozeß beim Start Parameter mitzugeben

              wenn der Prozess vom interaktiv angemeldeten Benutzer gestartet wird, ist dies selbstverständlich möglich. Bei einem LOCAL SERVER ist jedoch das COM-Subsystem von Windows für den Start zuständig, der dazu genutzte Weg (Eintausch der ProgID/CLSID in den Pfad der ausführbaren Anwendung) ist aber nicht beeinflussbar.

              Es gibt somit nur 2 Optionen: <br>
              1. Die in den vorherigen Antworten genannten Alternativen nutzen, oder <br>
              2. Den Prozess des LOCAL SERVER nicht über COM, sondern über Win32 starten und dabei die Parameter übergeben. Der LOCAL SERVER registriert sich sofort über <b>RegisterActiveObject</b> in der ROT (Running Object Table), so dass die Clients einen Interface-Zeiger auf den bereits laufenden LOCAL SERVER über <b>GetActiveObject</b> (anstelle von CreateOleObject) anfordern können.

              Die Suche nach der Zeichenkette "RegisterActiveObject" liefert hier im FORUM zahlreiche Beispiele zurück

              Comment

              Working...
              X