Die Inventor FAQ wird unterstützt von:

Inventor FAQ Logo

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

2 Kommentare:

War der Beitrag hilfreich oder hast du eine Ergänzung dazu?
Ist noch eine Frage offen?
Ich freue mich auf deine Rückmeldung!

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.

Related Posts Plugin for WordPress, Blogger...
Inventor FAQ Newsletter. Emailadresse: