Announcement

Collapse
No announcement yet.

Prüfen ob ein Com-Server registriert ist

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

  • Prüfen ob ein Com-Server registriert ist

    Wie kann ich prüfen ob ein bestimmter Com-Server installiert ist ? Ich möchte kein OleCheck verwenden, da ich keine Exception auslösen möchte.

    Gruß
    Sascha

  • #2
    Hallo!

    Alle COM Objekte tragen sich in der Registry ein.

    HKEY_LOCAL_MACHINE
    Software
    Classes
    MeineDLL.MeineKlasse
    clsID

    Such in der Registry einfach mal nach Deiner ClassID.

    BYE BERND

    Comment


    • #3
      Ober einfach geschützt mit try...except einfach die COM-Klasse versuchen zu initialisieren.

      Comment


      • #4
        Gibt es denn keine ordentliche Methode/API die einfach nur mal nachschaut ?
        Registry durchsuchen order auch try except sind mir bekannt...ist mir aber nicht elegant genug

        Comment


        • #5
          Hallo!
          naja Du kannst natürlich die Typbibliothek vom MTS importieren und Dich dann dort durchhangeln.
          "MTS 2.0 Admin Type Library"

          Aber spricht denn gegen einen try except Block, wie von Bernhard vorgeschlagen?!?

          BYE BERND

          Comment


          • #6
            Ganz einfach, wenn ich selbst nicht den Com-Server installiert habe laufe ich nach jedem start aus der IDE auf die exception. Und das ist nicht akzeptabel. Klar wenn das Programm fertig compiliert ist und ich es normal starte merkt das keiner. Aber innerhalb der entwicklungsumgebung ist es mist

            Comment


            • #7
              Hallo!

              try
              RunMyComServer;
              except
              on e:exception do begin
              if DebugHook <> 0 then begin
              outputdebugstring ( 'Nö kein COM da macht aber nix!' );
              end
              else begin
              MessageDlg('Hallo Anwender! Leider kein COM da vergiss es!', mtError, [mbOK], 0);
              end;
              end;
              end;

              So vielleicht?

              BYE BERND

              Comment


              • #8
                Keiner versteht mich.... :-(
                Wenn du das programm nun aus der IDE laufen lässt, bekommst du trotzallem eine exception, die ist zwar abgefangen, du musst aber bei jedem programmstart aus der IDE zweimal bestätigen, da dir die exception zumindest angezeigt wird.

                Ich suche klar nach einer Methode, die einen Com-Server sucht.
                Sonst muss ich so eine funktion selbst nachbilden (Registry)

                Gruß
                Sascha

                Comment


                • #9
                  Du kannst die Exception in der IDE ignorieren, Tools/Optionen/DebuggerOptionen/BorlandDebugger/SprachExceptions

                  Gruß
                  Gerhard

                  Comment

                  Working...
                  X