| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: AutoCAD Produkt Informationen (1616 mal gelesen)
|
Airam Mitglied Network Engineer
Beiträge: 5 Registriert: 20.08.2007
|
erstellt am: 20. Aug. 2007 15:54 <-- editieren / zitieren --> Unities abgeben:
Hallo, meine Aufgabe ist es eine Datenbanktabelle in Access mit unseren lizenzierten Anwendungen zu erstellen. Ich möchte dafür ein Visual Basic Script erstellen (im Text Editor), weil es mir viel Arbeit erspart. Ich brauche von AutoCAD folgende Product Informationen (wir haben in unserem Büro die englische Version von AutoCAD). Product Information: 1. Product Name 2. License ID 3. Product Version 4. Product serial number Mein bisheriges Script erfragt die Angaben von der Registry, aber ich komme auf diesem Weg nicht an die ‚License ID’ und an die ‚serial number’. Ich habe schon alles Mögliche versucht. Hat jemand einen Vorschlag? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 20. Aug. 2007 16:06 <-- editieren / zitieren --> Unities abgeben: Nur für Airam
du kannst u.a. die Systemvariablen (1.) PRODUCT ,(3.) ACADVER und (4.) _PKSER abfragen Die Registry liefert aber unter HKEY_LOCAL_MACHINI -> SOFTWARE -> AUTODESK -> AUTOCAD aber auch entsprechende Einträge ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Airam Mitglied Network Engineer
Beiträge: 5 Registriert: 20.08.2007
|
erstellt am: 22. Aug. 2007 10:34 <-- editieren / zitieren --> Unities abgeben:
Habe leider nichts in der Registry unter AUTOCAD gefunden. Mein registry-script hat die Angaben in Add/Remove software abgefragt Product Name und Product Version beknomme ich auch wenn ich WMIService einsetze, „objWMIService.ExecQuery ("Select * from Win32_Product Where Caption like '%autoC%'")“ mit ‚ objCad.Caption ‚ und ‚objCad.Version’ aber wiederum nicht ‚License ID’ und ‚Product Serial Number’. Ein anderer Weg wäre vielleicht eine Instanz von AutoCAD zu öffnen mit „Set objACAD = CreateObject("AutoCad.Application")“ oder ähnlich, leider bekomme ich eine Fehlermeldung . „ActiveX component can’t create object:“AutoCAD.Application’ Kann jemand weiterhelfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 22. Aug. 2007 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für Airam
Hallo, es kommt darauf an ob du AutoCAD starten kannst oder nicht. Wenn du eine Instanz von AutoCAD hast (z.B. mit CreateObject) kannst du über Application.ActiveDocument.GetVariable ("PRODUCT") über die AutoCAD Mechanismen auf die Werte zugreifen. CreateObject ("Autocad.application") funktioniert nicht immer wenn mehrere Versionen auf dem Rechner sind. Du kannst dann Versuchen per Try and Error welche Versionen gehen. CreateObject ("Autocad.application.16") = 2004 usw. Du kannst aber auch direkt die Registry auslesen Wilfried Stelberg
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Airam Mitglied Network Engineer
Beiträge: 5 Registriert: 20.08.2007
|
erstellt am: 23. Aug. 2007 11:41 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für deinen Eintrag; ich habe die Seriennummer jetzt aus der Registry auslesen können. Die „LicenseID“ fehlt mir immer noch. Noch eine andere Frage, weiß jemand ob die Pfade in der Registry für jede Version von AutoCAD gleich sind (z.B. Autodesk/AutoCAD??/ R??/ACAD??)? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 23. Aug. 2007 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für Airam
Starte mal Autocad .. ? .. Produktinformationen .. LicenseID ..merken dann REGEDIT ..Suchen nach LicenseID und? ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Airam Mitglied Network Engineer
Beiträge: 5 Registriert: 20.08.2007
|
erstellt am: 23. Aug. 2007 15:30 <-- editieren / zitieren --> Unities abgeben:
Also, meine Suche ergab: „HKLM\Software\Autodesk\PLU26“ mit LicenseID Eintrag unter Name und „HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\ {7DF......“ mit LisenseId Eintrag in einem Pfadnamen unter Data. Scheint mir etwas schwierig zu erreichen. Ich habe mir nur eine Installation von ACAD(AutoCAD LT 2007) angeschaut und die Frage ist ob andere Versionen die gleichen Pfade und Einträge haben. Zur Not käme ich auch nur mit der Serial Number über die Runden. Ich habe da noch ein Problem. Wie sieht in VBS ein Platzhalter in den Pfadnamen aus, für den Fall, dass nicht jeder User genau die gleiche Version von AutoCAD installiert hat. Mit anderen Worten welches Zeichen könnte meine Fragezeichen einsetzen. Gibt es hier eine kurze Version? Dim strPathOne, strPathTwo, strPathThree Dim strKeyPath, strValueOne, strValueTwo, strValueThree Dim strOne, strTwo, strThree strPathOne = "AutoCAD??*" strPathTwo = "R??" strPathThree = "ACAD??*" 'strKeyPath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" 'iRC = oReg.EnumKey(HKLM, strKeyPath, aSubKeys) strKeyPath ="SOFTWARE\Autodesk\" & strPathOne & "\" & strPathTwo & "\" & strPathThree strValueOne = "ProductName" strValueTwo = "ProductId" strValueThree = "SerialNumber" oReg.GetStringValue HKLM, strKeyPath, strValueOne, strOne wscript.echo strOne oReg.GetStringValue HKLM, strKeyPath, strValueTwo, strTwo wscript.echo strTwo oReg.GetStringValue HKLM, strKeyPath, strValueThree, strThree wscript.echo strThree Danke für eure Hilfe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 23. Aug. 2007 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für Airam
Hallo, folgender Link beschreibt wie du es machen könntest. In HKLM\Software\AutoCAD sind alle Versionen aufgelistet z.B. HKLM\Software\AutoCAD\R16.0 HKLM\Software\AutoCAD\R17.0 usw. Innerhalb der Versionen könnten noch mehrere Installationen stehen die dann den Schlüssel HKLM\Software\AutoCAD\R16.0\ACAD-%ProductID%:%localeID% haben. Noch eine Anmerkung zur ActiveX Schnittstelle. Das klappte bei dir nicht weil AutoCAD LT keine ActiveX Schnittstelle hat. Wilfried Stelberg
------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Airam Mitglied Network Engineer
Beiträge: 5 Registriert: 20.08.2007
|
erstellt am: 28. Aug. 2007 09:30 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank für eure Hilfe. Ich habe ein script 'entwickelt' und es funnktioniert mit AutoCAD LT 2007. Leider hatte ich noch keine Gelegenheit es auf anderen Installationen zu testen. Ich möchte mein Script mal posten, vielleicht hat jemand Verbesserungsvorschläge: Const HKLM = &H80000002 strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "SOFTWARE\Autodesk" oReg.EnumKey HKLM, strKeyPath, arrSubKeys For Each subkey In arrSubKeys If Left (subkey, 7) = "AutoCAD" then wscript.echo subkey strKeyPath = "SOFTWARE\Autodesk" & "\" & subKey End if Next wscript.echo strKeyPath oReg.EnumKey HKLM, strKeyPath, arrSubKeys For Each subkey In arrSubKeys if Left (subkey, 2) = "R1" then wscript.echo subkey strKeyPath = strKeyPath & "\" & subKey End if Next Wscript.echo strKeyPath oReg.EnumKey HKLM, strKeyPath, arrSubKeys For Each subkey In arrSubKeys if Left (subkey, 4) = "ACAD" then wscript.echo subkey strKeyPath = strKeyPath & "\" & subKey End if Next Wscript.echo strKeyPath strSearch = "SerialNumber" oReg.GetStringValue HKLM, strKeyPath, strSearch, strSN wscript.echo strSN Wscript.echo "End" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |