Die Standardanwendung für Dateitypen in Windows finden
Entwickler müssen häufig die Standardanwendung finden, die einem bestimmten Dateityp zugeordnet ist. Dies ist wichtig für Aufgaben wie das Aufrufen des Standardeditors für eine bestimmte Dateierweiterung.
Um dies zu erreichen, könnte man erwägen, System.Diagnostics.Process.Start zu verwenden, um eine Datei in ihrer Standardanwendung zu öffnen. Dieser Ansatz ist jedoch begrenzt und ermöglicht nicht das Öffnen von Dateien mit nicht standardmäßigen Erweiterungen.
Die zuverlässige Lösung besteht darin, die Win32-API-Funktion AssocQueryString zu verwenden. Diese Funktion ermöglicht die Abfrage des Betriebssystems nach der Standardanwendung, die einem Dateityp zugeordnet ist.
So können Sie AssocQueryString in C# nutzen:
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 ); [Flags] public enum AssocF { // ... } public enum AssocStr { // ... } public static string AssocQueryString(AssocStr association, string extension) { const int S_OK = 0; const int S_FALSE = 1; uint length = 0; uint ret = AssocQueryString(AssocF.None, association, extension, null, null, ref length); if (ret != S_FALSE) { throw new InvalidOperationException("Could not determine associated string"); } var sb = new StringBuilder((int)length); ret = AssocQueryString(AssocF.None, association, extension, null, sb, ref length); if (ret != S_OK) { throw new InvalidOperationException("Could not determine associated string"); } return sb.ToString(); }
Indem Sie AssocQueryString aufrufen und die gewünschte Zuordnung angeben, Sie können den vollständigen Pfad zur Standardanwendung abrufen. Dadurch können Sie direkt mit dem Standardeditor oder -prozessor für einen bestimmten Dateityp interagieren, auch wenn die Datei keine Standarderweiterung hat.
Das obige ist der detaillierte Inhalt vonWie kann ich programmgesteuert die Standardanwendung für einen bestimmten Dateityp in Windows finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!