Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  ObjectDBX - Tips und Verbesserungen??

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   ObjectDBX - Tips und Verbesserungen?? (793 mal gelesen)
Wolfgang S
Mitglied
CADaver


Sehen Sie sich das Profil von Wolfgang S an!   Senden Sie eine Private Message an Wolfgang S  Schreiben Sie einen Gästebucheintrag für Wolfgang S

Beiträge: 270
Registriert: 06.03.2006

AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 +
Win XP, Win XP64, Win 7/64

erstellt am: 21. Jun. 2007 09:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo alle!

Ich habe da was gebastelt - jetzt stelle ich den Code online, weil ich mir erhoffe wieder neues dazuzulernen - deswegen: gibt´s Tipps oder Verbesserungsvorschläge?

Das Programm dient dazu, alle registrierten Versionen der ObjectDBX aus der Registry auszulesen, die DLLs zu ermitteln und die Version, dessen dll-Datei in den Supportpfaden vorhanden ist zu suchen.
Somit möchte ich verhindern bei jeder neuen Acad-Version wieder alle ObjectDBX-Anwendungen umzuschreiben.
das Proggi soll ab 2006 laufen, deswegen ist auch die Registrierung der dll nicht dabei.

Code:

(vl-catch-all-apply
  'vla-GetInterfaceObject
  (append
    (list (vlax-get-acad-object))
    (vl-remove-if
      'not
      (mapcar
(function
  (lambda (version)
    (if
      (findfile
(vl-registry-read
  (strcat
    "HKEY_CLASSES_ROOT\\CLSID\\"
    (vl-registry-read
      (strcat "HKEY_CLASSES_ROOT\\" version "\\CLSID")
    )
    "\\InProcServer32"
  )
) ;prüft, welche dll-Datei für die ObjectDBX-Version registriert ist, ->
      ) ;wenn file in den Supportpfaden, dann isses gut
      version
      nil
    )
  )
)
(vl-remove-if-not
  '(LAMBDA (VARIABLE)
    (wcmatch VARIABLE "ObjectDBX.AxDbDocument.*")
  )
  (vl-registry-descendents "HKEY_CLASSES_ROOT")
) ;Rückgabe: Liste aller registrierten ObjectDBX-Versionen
      )
    ) ;Liste mit einer gültigen Version als Text
  )
) ;Rückgabewert ist VLA-Object der aktuellen DBX-Variante



lg
Wolfgang S

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2017 CAD.de