Übersicht

Applikationen haben verschieden Schnittstellen zum Betriebssytsem, welche mit der Installation erstellt werden. Diese Schnittstellen werden zu einem grossen Teil in der Registry unter CLASSES_ROOT registriert. Untenstehend werden die einzelnen Schnittstellen beschrieben.


https://blogs.windows.com/windowsdeveloper/2017/04/13/com-server-ole-document-support-desktop-bridge/


Startmenü

Das Startmenü ist der bekannteste Einstiegspunkt unter Windows, in welchem die Benutzer Ihre Programme wiederfinden. Die Einträge im Startmenü waren vor Windows 8 komplett unter %ProgramData%\Microsoft\Windows\Start Menu\ als .lnk Dateien abgelegt. Zusätzlich wurden Sie noch mit dem entsprechenden Benutzerverzeichnis kombiniert. Ab Windows 8 sind im Startmenü auch MSIX Apps ausgewiesen.

Klassisch
Speicherpfad%ProgramData%\Microsoft\Windows\Start Menu\*.lnk
%APPDATA%\Microsoft\Windows\Start Menu\*.lnk
Deinstallation ProblemlosJa
Änderung bei Minor UpdateNein

 

App-V
Speicherpfad%ProgramData%\Microsoft\Windows\Start Menu\*.lnk
%APPDATA%\Microsoft\Windows\Start Menu\*.lnk
Deinstallation ProblemlosJa
Änderung bei Minor UpdateJa

 

MSIX
Speicherpfad%ProgramFiles%\WindowsApps\...\appxmanifest.xml
HKCR\AppX...\Application
Deinstallation ProblemlosJa
Änderung bei Minor UpdateAutomatisch

 


Desktop

Wie im Startmenü werden auch die Desktop-Verknüpfungen über ein Windows-Verzeichnis (%PUBLIC%\Desktop) als .lnk Dateien erstellt, auch hier wird das Verzeichnis aus dem entsprechnden Benutzerverzeichnis kombiniert. Zusätzlich werden gewisse vordefinierte Icons wie z.B. der Trashcan vom Betriebssytem ergänzt.


Klassisch
Speicherpfad%PUBLIC%\Desktop\*.lnk
%USERPROFILE%\Desktop\*.lnk
Deinstallation ProblemlosJa
Änderung bei Minor UpdateNein

 

App-V
Speicherpfad%PUBLIC%\Desktop\*.lnk
%USERPROFILE%\Desktop\*.lnk
Deinstallation ProblemlosJa
Änderung bei Minor UpdateJa

 

MSIX
Speicherpfadnicht unterstützt
Deinstallation Problemlosnicht unterstützt
Änderung bei Minor Updatenicht unterstützt

 

Dateiverknüpfungen (FTA)

Unter Windows reichen die Dateiverknüpfungen (File-Extensions) bis zu DOS-Zeiten zurück. Windows erkennt Dateitypen anhand der Endung des Dateinamens. Diese Extensions werden in Legacy-Paketen über Classes_Root definiert, und zwar im Root des Trees, sie beginnen immer mit einem Punkt (.).



Klassisch
SpeicherpfadHKCR\.*
Deinstallation ProblemlosNein
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKCR\.*
Deinstallation ProblemlosNein
Änderung bei Minor UpdateJa

 

MSIX
SpeicherpfadHKCR\.*\OpenWithProgids
Deinstallation ProblemlosJa
Änderung bei Minor UpdateAutomatisch

 

ProgID

Dateiverknüpfungen zeigen im klassischen Windows auf eine ProgId, und nicht direkt auf die Exe. Die ProgId enthält die Information, wo sich das Programm befindet und mit welchen Parametern es gestartet werden soll. ProgId-Einträge werden ausserdem von WebBrowsern unterstützt, es ist beispielsweise folgender Eintrag möglich:

txtfile://meineparameter



https://docs.microsoft.com/en-gb/windows/win32/com/-progid--key
Klassisch
SpeicherpfadHKCR\*
Deinstallation ProblemlosNein
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKCR\*
Deinstallation ProblemlosNein
Änderung bei Minor UpdateJa

 

MSIX
SpeicherpfadNicht unterstützt (ausser Kompatibilität)
Deinstallation ProblemlosJa
Änderung bei Minor UpdateAutomatisch

 


Verbs

Die Verbs beschreiben das Kontextmenü beim "Rechtsklick" auf eine Datei



Mime Types

Der Internet Media Type, auch MIME-Type (nach der Spezifikation Multipurpose Internet Mail Extensions) oder Content-Type (nach dem Namen des Feldes), klassifiziert die Daten im Rumpf einer Nachricht im Internet. Wie im MIME-Standard erläutert, wird z. B. bei einer HTTP-Übertragung einem Browser mitgeteilt, welche Daten der Webserver sendet – ob es beispielsweise ein Plain-Text-Dokument, ein HTML-Dokument oder ein PNG-Bild ist. Auch in E-Mails wird das „Content-Type“-Header-Feld dazu verwendet, die verschiedenen Daten zu klassifizieren.



https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
https://de.wikipedia.org/wiki/Internet_Media_Type

Klassisch
SpeicherpfadHKCR\CLSID\MIME\*
HKEY_CURRENT_USER\Software\Classes
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKCR\CLSID\MIME\*
HKEY_CURRENT_USER\Software\Classes
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateJa

 

MSIX
SpeicherpfadHKCR\PackagedCom\Package\*
HKEY_CURRENT_USER\Software\Classes
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateAutomatisch

 

Classes (CLSID)

Eine CLSID ist eine Globally Unique Identifier, die ein com-Klassenobjekt identifiziert. Wenn Ihr Server oder Container das Verknüpfen mit den eingebetteten Objekten zulässt, müssen Sie für jede unterstützte Objektklasse eine CLSID registrieren.

Jede Coklasse vom COM-Server hat mindestens einen Eintrag unter diesem Schlüssel, der die CLSID und die ProgID angibt. Die CLSID ist eine GUID, die die Klasse eindeutig identifiziert, und die ProgID (programmatic identifier) ist eine Zeichenkette, die die Klasse in einer besser lesbaren Form identifiziert.



https://docs.microsoft.com/en-gb/windows/win32/com/clsid-key-hklm https://mariusbancila.ro/blog/2010/06/01/com-and-registry/

Klassisch
SpeicherpfadHKCR\CLSID\*
HKEY_CURRENT_USER\Software\Classes
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKCR\CLSID\*
HKEY_CURRENT_USER\Software\Classes
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateJa

 

MSIX
SpeicherpfadHKCR\PackagedCom\Package\*
HKEY_CURRENT_USER\Software\Classes
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateAutomatisch

 

TypeLibs

Jede Typbibliothek hat einen Schlüssel unter HKEY_CLASSES_ROOT\TypeLib, mit dem Namen der LIBID. Die Unterschlüssel liefern Informationen über den physischen Speicherort der Typbibliothek-Datei (.tlb-Datei) und andere, wie Flags (Schlüssel FLAGS) das Verzeichnis, das die Hilfedatei für die Typbibliothek enthält (Schlüssel HELPDIR). Eine LIBID ist eine GUID, die eine Typbibliothek eindeutig identifiziert. Eine *.TLB-Datei ist eine Binärversion einer IDL-Datei. Diese wird von Sprachen wie VB, Java, Javascript und vielen anderen verwendet, um die COM-Objekte nutzen zu können.



Klassisch
SpeicherpfadHKCR\TypeLib\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKCR\TypeLib\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateJa

 

MSIX
SpeicherpfadHKCR\TypeLib\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateAutomatisch

 

Interfaces

Die Informationen für alle in einer IDL-Datei (Typbibliothek) definierten Schnittstellen müssen in der Registrierung hinzugefügt werden. Unter HKEY_CLASSES_ROOT\Interface muss ein Schlüssel mit der IID der Schnittstelle stehen. Die IID (Interface Identifier) ist eine GUID, die eine Schnittstelle eindeutig identifiziert.



Klassisch
SpeicherpfadHKCR\Interface\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKCR\Interface\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateJa

 

MSIX
SpeicherpfadHKCR\Interface\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateAutomatisch

 

AppIds

Eine AppID (Application Identifier) ist eine GUID, die einen COM-Server eindeutig identifiziert und zur Beschreibung von Sicherheits- und Aktivierungseinstellungen verwendet wird; sie wird für Out-of-Proc-Szenarien (lokal oder remote) verwendet. Normalerweise ist die AppID identisch mit der CLSID einer Coclass des COM-Servers (ohne Kollisionsgefahr, da die CLSID und die AppID unterschiedlichen Zwecken dienen).





Klassisch
SpeicherpfadHKCR\AppID\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKCR\AppID\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateJa

 

MSIX
SpeicherpfadHKCR\AppID\*
Deinstallation ProblemlosJa (wegen GUID)
Änderung bei Minor UpdateAutomatisch

 

AppPath

Wenn die ShellExecuteEx -Funktion mit dem Namen einer ausführbaren Datei im lpfile -Parameter aufgerufen wird, gibt es mehrere Stellen, an denen die Funktion nach der Datei sucht. Es wird empfohlen, die Anwendung im Registrierungs Unterschlüssel App-Pfade zu registrieren. Dadurch entfällt die Notwendigkeit, dass Anwendungen die Systempfad-Umgebungsvariable ändern.

Die Datei wird an den folgenden Speicherorten gesucht:

  1. Das aktuelle Arbeitsverzeichnis
  2. Nur das Windows-Verzeichnis (es werden keine Unterverzeichnisse durchsucht).
  3. Das Windows\system32-Verzeichnis.
  4. Verzeichnisse, die in der PATH-Umgebungsvariablen aufgelistet sind.
  5. Empfohlen: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AppPath

https://docs.microsoft.com/en-us/windows/win32/shell/app-registration
Klassisch
SpeicherpfadHKLM\Software\Microsoft\Windows\CurrentVersion\AppPath
Deinstallation ProblemlosJa
Änderung bei Minor UpdateNein

 

App-V
SpeicherpfadHKLM\Software\Microsoft\Windows\CurrentVersion\AppPath
Deinstallation ProblemlosJa
Änderung bei Minor UpdateAutomatisch

 

MSIX
SpeicherpfadHKLM\Software\Microsoft\Windows\CurrentVersion\AppPath
Deinstallation ProblemlosJa
Änderung bei Minor UpdateAutomatisch