Die Inventor FAQ wird unterstützt von:

Inventor FAQ Logo
1957 Tipps, Tricks und Artikel für Inventoranwender

28.02.2018

Teil 2: Was passiert alles beim Inventor-Start? Ein Blick hinter die Kulissen

Hier geht es zu Teil 1

Der zweite Teile des Beitrags Beitrag ist auch lang, theoretisch und wird mit viel "gefährlichem Halbwissen" gespickt. Das als kleine Warnung vorne weg. Es geht darum, was beim Start der Inventor.exe alles passiert. Und das ist sehr viel.

Registry: InfoCenter

Nach einer ganzen Menge gelesener Windows dlls und dlls von Drittanbietern geht es an das Lesen der Infos zum InfoCenter aus der Registry

HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\WS:409\InfoCenter

Dazu wird eine Logdatei erstellt: C:\Users\juergen\AppData\Local\Autodesk\Inventor 2018\DEU\InfoCenter.log

Anmelden bei Autodesk

Der Webservice liest die Informationen, um sich bei Autodesk anzumelden.

C:\Users\juergen\AppData\Local\Autodesk\Web Services\LoginState.xml

image

Registry: Farbenschemata lesen

HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\ColorSchemes\Schemes

image

Registry: Grafikhardwareeinstellungen

HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Driver

Interessant hier: Folgende Schlüssel werden gesucht, aber nicht gefunden.

image

Entweder diese Einträge sind nicht mehr relevant, weil der Inventor DirectX nutzt und nicht mehr, wie früher, OpenGL oder Autodesk nutzt diese "Schalter" intern zur Fehlersuche.

Registry: Weitere Einstellungen lesen

  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Window\WindowPos
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Transactions (mehr zum Thema "Rückgängig")
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Transcript (mehr Infos zu Thema Transaction)
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Display
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\File
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\CustomColors
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\MostRecentValues
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\COMDebugging

    image
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Browser
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Sketch
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Part
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Assembly
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\StylesEditor
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\FileDialog
  • HKLM\SOFTWARE\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Content Center
  • HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\UI

Inventor Module laden (Geheimnis ;) )

C:\Program Files\Autodesk\Inventor 2018\Configuration\appletconfig_inventor.xml

image

Was zum "spielen" und "hacken" für alle, denen es egal ist, wenn ihr Inventor nicht mehr funktioniert ;)

Ganz unten in der Datei das Occasion="14" löschen.

image

Dadurch wird bei "Kopie speichern unter" das Format Validation XML zur Verfügung gestellt.

image

Man bekommt das Inventordokument im XML Format.

image

Wir sind bei Schritt 64290 (von 472458 und wird wird langsam etwas bang' vor der Aufgabe, die noch vor mir liegt!)

Registry: Umgebungen laden

HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\UI Customization V5\Environments\

Zwischen den einzelnen Environments werden immer die gleichen DLLs geladen

  • C:\Program Files\Autodesk\Inventor 2018\Bin\FwCmds.dll
  • C:\Program Files\Autodesk\Inventor 2018\Bin\DlCmds.dll

image

Den Abschluss dieses "Blocks" bilden die Zeichnungsumgebungseigenschaften

HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\Applets\DrawingLayout\Preferences

Registry: Ganz viel HKCR\CLSID\

Tausende Zeilen aus der Registry HKCR\CLSID\{0C7FF16C-38E3-11d0-97AB-00C04FC2AD98}

image

DDE

Nach hunderten Versuchen, den Templatepfad zu lesen (er gar nicht mehr in der Registry steht)…

image

…kommen die Windows DDE Funktionen, z.B. HKCU\Software\Classes\Inventor.AssemblyDocument\shell\printto\ddeexec

image

image

image

VBA Projekt (IVB-Datei)

Jetzt kommt die VBA-Umgebung inkl. der eingestellten IVB-Datei

image

Es folgen sehr viele Windowsaufrufe, bevor die Microsoft VBA-Umgebung geladen wird.

  • C:\Program Files\Common Files\microsoft shared\VBA\VBA7.1\
  • HKLM\SOFTWARE\Microsoft\VBA\Vbe71DllPath
  • C:\Program Files\Common Files\microsoft shared\VBA\VBA7.1\VBE7.DLL
  • C:\Program Files\Common Files\microsoft shared\VBA\VBA7.1\VBEUI.DLL
  • C:\Program Files\Common Files\microsoft shared\VBA\VBA7.1\VBEUIRES.DLL

image

Sobald die VBA-Umgebung bereit ist, werden die Bilder für die Icons der Module geladen, sofern sie vorhanden sind.

image

image

Sobald die Icons geladen sind, wird die %appdata%\Roaming\Autodesk\Inventor 2018\InventorCustomization.xml nochmals geladen, wahrscheinlich um die VBA Makros in die Oberfläche einzubinden.

Registry: HKCR\CLSID\{1E589E9D-8A8D-46d9-A2F9-E6D4F8161EE9}

Tausende von Zeilen, dir wir einfach übergehen…

image

Relavant? Bestimmt. aber leider kann ich da nicht wirklich weiterhelfen…

image

Addins (Zusatzmodule)

Ein wichtiger Block fehlt noch und das sind die Zusatzmodule. Der kommt ziemlich zum Ende, indem die "Addin" Dateien gelesen und verarbeitet werden.

  • C:\Users\juergen\AppData\Roaming\Autodesk\ApplicationPlugins\*.addin
  • C:\ProgramData\Autodesk\Inventor 2018\Addins
    image
  • C:\Users\juergen\AppData\Roaming\Autodesk\Inventor 2018\Addins
    image
  • C:\ProgramData\Autodesk\Inventor Addins
    image
  • C:\Program Files\Autodesk\Inventor 2018\Preferences\AddInLoadRules.xml ==> Infos zum Thema "Addins" und die Rechte beim Laden

iLogic

C:\Program Files\Autodesk\Inventor 2018\Bin\Autodesk.iLogic.dll

image

image

C:\Windows\assembly\NativeImages_v4.0.30319_64\Autodesk.iLogic\c9c4b3f34e7bd65906bfba4dd5d61b82\Autodesk.iLogic.ni.dll

C:\Users\juergen\AppData\Roaming\Autodesk\Inventor 2018\iLogicPreferences\iLogicOptions.xml

image

Excel

image

Nochmals Zusatzmodule

C:\ProgramData\Autodesk\Inventor 2018\Addins\

image


Inventor Toolbox

Jetzt wird die externe Inventor FAQ Toolbox.exe gestartet (wenn man sie dann hat)

image

Translator-Addins

image

ASM (Autodesk Shape Manager)

image

Inventor FAQ 2 (IVB-Datei laden)

image

Ende

image

Wir sind bei Zeile 472458 angekommen. Seit dem ich den ersten Beitrag angefangen habe, sind ca. 10 Stunden vergangen. Warum habe ich das gemacht? für mich ist so eine "Analyse" wie ein Adventure spielen auf der Suche nach "versteckten" Rätsel. Auf ein paar neue Dinge bin ich gestoßen und ich habe viel gelernt und das war es wert ;)

26.02.2018

Was passiert alles beim Inventor-Start? Ein Blick hinter die Kulissen

Dieser Beitrag wird lang, theoretisch und mit viel "gefährlichem Halbwissen" gespickt sein. Das als kleine Warnung vorne weg. Es geht darum, was beim Start der Inventor.exe alles passiert. Und das ist sehr viel.

Zur Analyse habe ich folgenden Tools verwendet:

Um zu ermitteln, was alles während des Starts der inventor.exe passiert, hilft ein Blick in den Process Explorer, der "mitschneidet" was eine Programm alles macht.

image

Vom Start der inventor.exe bis zu einem fertig geladenen Bauteil wurde insgesamt 465511 Schritte "aufgenommen" (von 2.029.879 Aktivitäten, die währenddessen insgesamt unter Windows passiert sind). Das ist eine ganze Menge, wobei mehrere Aktivitäten (= Zeilen in der Liste) einem Vorgang zugeordnet werden können, z.B. wird in diesen 3 Zeilen ein Wert in der Registry gelesen.

image

Bei vielen Schritten weiß ich ich ehrlich gesagt nicht (genau) was sie machen. Z.B. wird direkt nach dem Start der Inventor..exe die ntdll.dll geladen. Das ist ein Vorgang, der bei vielen anderen Programmstarts auch ausgeführt wird. Mehr zu diesen Windows Bibliotheken hier.

image

Deswegen konzentriere ich mich auf die Vorgänge, die direkt mit dem Inventorprozess zusammenhängen.

Startparameter und Umgebungsvariablen

/language=

Wird der Inventor über die bei der Installation erzeugte Verknüpfung gestartet, ist da den Programmaufruf der Parameter /language=DEU angehängt, weil nach der Inventor "Grundinstallation" – in deutschsprachigen Raum – das deutsche Sprachpaket (Language Pack) installiert wurde.

image

Für jeden weiteren Language Pack, der installiert wurde, wird eine weitere Verknüpfung mit dem entsprechenden Startparameter erzeugt.

image

Nach der Installation des Language Pack ENG findet sich eine weitere Verknüpfung zum Start des Inventors in englisch.

image

Wer die Sprache selbst anpassen will, muss also:

  1. Den gewünschten Language Pack installieren
  2. Den Inventor über die neue Verknüpfung starten oder eine Verknüpfung erstellen, und den Startparameter /language=<Sprachkürzel> setzen.

Daraus ergibt sich eine weitere Frage: Woher weiß der Inventor, welche Sprache er nutzen soll, wenn kein Sprachstartparameter angegeben wird, weil die inventor.exe z.B. direkt aus dem Windows Explorer gestartet wird? Dann wird die Registry ausgelesen und zwar der Schlüssel:

HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion22.0\CurrentLanguage

image

Vorausgesetzt das Sprachpaket ist installiert, kann die Sprache also entweder über die Befehlszeilenoption /language= an der Startverknüpfung oder durch ändern des Registryschlüssel festgelegt werden.

Die dreistelligen Buchstabencodes für die einzelnen Sprachen lauten:

  • Englisch - ENU
  • Chinesisch (vereinfacht) - CHS
  • Chinesisch (traditionell) - CHT
  • Tschechisch - CSY
  • Französisch - FRA
  • Deutsch - DEU
  • Italienisch - ITA
  • Koreanisch - KOR
  • Polnisch - POL
  • Portugiesisch (Brasilianisch) - PTB
  • Russisch - RUS
  • Spanisch - ESP

Neben dem language Startparameter gibt noch diese Optionen:

image

  • IMPORTCUSTOMIZATIONS - Importiert benutzerdefinierte Einstellungen aus einer angegebenen XML-Datei
  • IMPORTOPTIONS - Importiert Anwendungsoptionen aus einer angegebenen XML-Datei
  • IMPORTRIBBONCUSTOMIZATIONS - Multifunktionsleisten-Anpassungseinstellungen aus angegebener XML-Datei importieren
  • INSTALL - Installiert alle erforderlichen Registrierungseinstellungen
  • LANGUAGE - Mit angegebenem verfügbaren Language Pack starten
  • NOSTARTUPCOMMAND - Don''t open a file or create a new one on start up. Often used with RunTextCommandFile
  • RUNTEXTCOMMANDFILE:<FILENAME> - Runs a file containing text commands. Can be combined with NoStartCommand
  • UNINSTALL - entfernt alle Registrierungseinstellungen, wodurch benutzerdefinierte Voreinstellungen verloren gehen

Was die machen und für was sie gut sind, beschreibe ich in einem anderen Beitrag.

Umgebungsvariablen

Unter Windows lassen sich Umgebungsvariablen setzen, die wiederum von Programm ausgelesen werden. Eine solche Variable ist z.B. die UseLibXL, die steuert, wie der Inventor auf die thread.xls und clearance.xls zugreift. Zu diesem Thema habe ich kürzlich einen umfangreichen Artikel erstellt.

Eine weitere Umgebungsvariable, die unseren Inventor beeinflusst, ist die ADSK_CLM_WPAD_PROXY_CHECK, eine Einstellung, die steuert, ob das Autodesk Lizenzmodul nach Proxyservern sucht (was es Standardmäßig nicht tut, wenn die Variable =FALSE ist). Mehr dazu hier.

DLLs

Heutige Programme haben direkte und indirekte Abhängigkeiten zu weiteren ausführbaren Dateien (exe, dll, ocx), die auf einfache Weise nicht mehr nachvollziehbar sind. Mittels der oben angegebenen Tools ergeben sich aber folgenden Abhängigkeiten. Die Inventor.exe lädt direkt folgenden Komponenten:

image

Bis auf die FWUI.DLL sind das alles Standardkomponenten von Windows oder der Visual C++ Runtime. Der FwUI.dll (C:\Program Files\Autodesk\Inventor 2018\Bin\FwUI.dll) kommt also eine besondere Rolle zu. "Nimmt" man dem Inventor diese Datei weg, bekommt man sofort nach dem Start eine entsprechende Meldung angezeigt. (Was ist eine dll?)

image

Fun-Fact am Rande: Ich habe auf verschiedenen Wegen in die FwUI.dll hineingeschaut, und bin dabei auf Mickey Mouse, Donald und Goofy gestoßen. Was die da machen, erschließt sich mir allerdings nicht.

image

Diese oben angegeben DLLs laden wieder weitere DLLs nach (und diese wieder welche usw.) woraus sich eine komplexe Baumstruktur aus Abhängigkeiten ergibt.

image

Schaut man sie die Ereignisse beim Inventortstart an, wird die FwUI.dll auch ziemlich zu beginn geladen und darauf hin weitere DLLs.

image

So geht es eine ganze "Weile" (wobei "Weile" etwas übertrieben ist, weil wir hier von tausenden Aktionen" innerhalb weniger 1/10 Sekunden sprechen). Nachdem die wichtigsten dynamischen Bibliotheken (die Programmfunktionen und Ressourcen wie Bilder, Dialoge usw. enthalten) geladen sind, wird eine ganze Weile aus der Registy im Schlüssel HKCR\MIME\Database\Charset Zeichencodierungsinformationen gelesen.

image

Bisher ist ca. 1 Sekunde vergangen!

Datei: inventor.ini

Danach wird die Datei inventor.ini gelesen (C:\Program Files\Autodesk\Inventor 2018\Bin\Inventor.ini) die Informationen zu den bei der Installation getroffenen Einstellungen enthält.

image

Was genau der Inventor mit diesen Informationen anfängt, kann ich nicht sagen, den wenn ich dort Einträge verändere und den Inventor neu starte, hat das keine Auswirkungen auf das Verhalten. Zudem finden sich vergleichbare Einstellungen auch in der Registry.

image

Crash Count, Start Count, Exit Count

Nun kommt wieder mal die Registry dran. Es werden Infos zum Versionsnummer gelesen und dazu die Werte CCount, SCount und ECount was für Crash Count, Start Count, Exit Count steht. Das sind Zähler, die die Inventorstarts und Beendungen und die Abstürze zählt. Da nicht alle Abstürze abgefangen werden können, kann es sein, das die Summe aus ECount + CCount < SCount ist. Uptime und UptimeCalendar werden wohl die Laufzeit zählen. Da es Binärwerte sind, kann ich damit nichts anfangen.

image

Registry: GraphicsUtil

Es werden die Einträge aus dem Registryzweig HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\GraphicsUtil gelesen. Die Registrrywerte scheinen mir nicht dokumentiert zu sein. Ich habe ein bisschen daran "herumgespielt" und bin z.B. auf dieses – mir bisher völlig fremde – Fenster gestoßen:

image

Der praktische Nutzen dieses Befehls: Man sieht den internen Befehlsnamen, wenn man einen Befehl aufruft.

image

Registry: Acis

ACIS, der alte CAD-Berechnungskern, und der, heute von Autodesk entwickelt, ASM (Autodesk Shape Manager) sind als nächstes dran. Was hier aufgefallen ist: Es wird ein Eintrag gesucht, aber nicht gefunden, dessen Namen mich hellhörig gemacht hat: Use-Multithreaded-ASM

image

Ich habe den Eintrag testweise angelegt aber leider keinen Unterschied in der CPU-Auslastung beim Modellieren erkennen können. Das Meldungsfenster aus dem Schritt oben, hat immer die gleichen Meldungen ausgegeben:

image

Datei: inventor.exe.config

Manche Kommentare sind wohl schon etwas älter. Hier ein paar Links zu der Datei:

image

Datei: UserApplicationOptions.xml

Nach einigen Lesevorgängen in der Windowsregistry im Bereich HKCR kommt nun wieder eine wichtige Datei, die alle Änderungen in den Anwendungsoptionen speichert.

C:\Users\juergen\AppData\Roaming\Autodesk\Inventor 2018\UserApplicationOptions.xml oder allgemein %appdata%\Autodesk\Inventor 2018\UserApplicationOptions.xml

image

Registry: HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\Recent File List

image

Datei: %localappdata%\Autodesk\Inventor 2018\Preferences\AddInLoadRules.xml

Inventor liest die Einstellungen in der Datei AddInLoadRules.xml, die steuern, wie mit bzgl. der Ausführungssicherheit bei Zusatzmodulen verfahren werden soll. Dazu habe ich kürzlich einen ausführlichen Beitrag gemacht.

image

Wir sind bei Sequenzschritt 12566 von 472458 (Das sieht nach Arbeit aus :) )

Registry: HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\File\C:\Program Files\Autodesk\Inventor 2018\Bin\Inventor.exe:TemplateDir

Interessanterweise versucht der Inventor den Registrywert Inventor.exe:TemplateDir zu lesen, obwohl der in Inventor 2018 gar nicht mehr existiert. Dort war früher einmal der Pfad zu den Vorlagedateien gespeichert.

Aktuelle Projektdatei

Aus der Registry wird der Wert HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\ExternalReferences\PathFile gelesen der die aktuelle Projektdatei enthält. Anschließend wird der Dateiinhalt eingelesen.

Ribbon

Aus HKLM\SOFTWARE\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\UI\Ribbon und HKCU\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\UIStyle\Ribbon werden Informationen zur Multifunktionsleiste gelesen.

image

HKLM\SOFTWARE\Microsoft\Cryptography?

Es folgen wieder tausenden windowsspezifische Dateien und Registryeinträge. Es sind ca. 1,5 Sekunden vergangen. Auffällig sind die kryptographiespezifischen Einträge, wie etwa Zugriffe auf die DLL C:\Windows\System32\cryptnet.dll

Autodesk CLM / Lizenzabfrage

Ich habe den Eindruck die ganzen Zugriff im Vorfeld waren das Vorspiel für die Lizenzabfrage, die sich u.a. hier abspielt. CLM steht (wahrscheinlich) für CLIC License Manager.

image

Etwas später wird eine DLL geladen namens adlmint.dll (C:\Program Files\Common Files\Autodesk Shared\CLM\V5\MSVC14) was sich für mich nach einer Verbindung zum Autodesk License Manager anhört. In diesem Zusammenhang taucht auch schon sehr häufig die DLL C:\Program Files\Autodesk\Inventor 2018\Bin\Iop.dll auf.

Jetzt erfolgt auch der Zugriff auf den Registryeintrag HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\License

image

Und die Lizenz-Logdatei wird erstellt C:\Users\juergen\AppData\Local\Temp\AutodeskInventor2018License7.log mit deren Inhalt man aber nichts anfangen kann. Es folgen weitere Schritte im Lizenzprozess.

image

Einige tausend Schritte weiter (viel "Windowszeugs" und immer die selben dlls, nämlich lop.dll und unsere FwUI.dll) geht es mit dem Verzeichnis C:\ProgramData\FLEXnet weiter. Es wird auf die Datei adskflex_00691b00_tsf.data zugegriffen.

Es ist ca. zwei Sekunden vergangen und wir sind immer noch an der Lizenz.

Nun werden Dateien im Verzeichnis C:\Users\juergen\AppData\Roaming\Autodesk\ADUT\INVPROSA_2018\Transcripts\ angelegt, die etwas mit meiner Mietlizenz zu tun haben.

Nach ca. drei Sekunden und bei Schritt 47000 (von 472458) scheint die Lizenzabfrage erledigt zu sein. Gut Ding will Weile haben :)

Registry: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Autodesk\UPI

Es werden Werte aus der Registry gelesen und die zugehörigen XML-Dateien namens Upiconfig.xml

image

AutoCAD / TrueView

Jetzt verarbeitet der Inventor Registry- und Dateiinformationen die mit AutoCAD in Zusammenhang stehen.

image

Danach kommen Informationen von TrueView an die Reihe.

Informationen installierter Autodeskprodukte auslesen

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\UPI2\

image

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products

image

Registry: Inventor Fenstereinstellungen

HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion22.0\System\Preferences\Window

image

Desktop Connect Forever

Es wird eine Shellbatchdatei ausgeführt, was mich erst ziemlich irritiert hatte. Mehr zu Desktop Connect hier.

C:\Program Files\Autodesk\Desktop Connect\forever\StartServices.cmd

image

Grafikkarte

Jetzt ist die Grafikkarte dran was auch DirectX mit einschließt

image

image

Inventor Oberflächenanpassungen

Die Anpassungen an der Benutzeroberfläche werden eingelesen

C:\Users\juergen\AppData\Roaming\Autodesk\Inventor 2018\InventorCustomization.xml bzw. %appdata%\Autodesk\Inventor 2018\InventorCustomization.xml

image

Siehe dazu auch: Darstellungsprobleme in der MFL und wie ich auf die Lösung gekommen bin (Blick hinter die Kulissen einer Problemlösung)

Wir sind bei Schritt 57000 (von 427000)

Weiter zu Teil 2

Inventor FAQ Newsletter. Emailadresse: