Heim >Backend-Entwicklung >C++ >Wie kann ich die Standardanwendung für einen Dateityp in Windows programmgesteuert bestimmen?
Abrufen der Standardanwendung für einen Dateityp in Windows
Um die Standardanwendung zum Öffnen von Dateien eines bestimmten Typs zu ermitteln, können Sie diese verwenden die Windows-Registrierung. In HKEY_CLASSES_ROOT hat jede Dateierweiterung einen entsprechenden Schlüssel. Die Standardanwendung wird im Standardwert dieses Schlüssels gespeichert.
Betrachten Sie das folgende Beispiel zum Öffnen von HTML-Dateien:
This Die Methode weist jedoch Einschränkungen auf. Es basiert auf der Implementierung der Registrierung, die je nach Windows-Version unterschiedlich sein kann. Ein zuverlässigerer Ansatz ist die Win32-API-Funktion AssocQueryString.
AssocQueryString
AssocQueryString ermöglicht es Ihnen, die Standardanwendung nach einer bestimmten Datei abzufragen Typ.
Syntax:
uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut );
Flags:
Str:
Beispiel:
using System.Runtime.InteropServices; [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)] public static extern uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut ); AssocF flags = AssocF.Open_ByExeName; AssocStr str = AssocStr.Command; StringBuilder sb = new StringBuilder(); uint pcchOut = 0; uint ret = AssocQueryString(flags, str, ".txt", null, sb, ref pcchOut); if (ret == 0) { Console.WriteLine($"Default text editor: {sb.ToString()}"); } else { Console.WriteLine("Error retrieving default text editor."); }
Dies Der Ansatz bietet eine zuverlässigere Möglichkeit, die Standardanwendung für einen Dateityp in Windows zu bestimmen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Standardanwendung für einen Dateityp in Windows programmgesteuert bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!