Die Standardanwendung zum Öffnen eines Dateityps unter Windows (.NET) finden
In .NET Framework 2.0 mit C# ist dies möglich Öffnen Sie Dateien in ihrer Standardanwendung, indem Sie System.Diagnostics.Process.Start() verwenden. Bei Dateien ohne bestimmte Erweiterungen kann es jedoch schwierig sein, die zugehörige Anwendung zu ermitteln.
Verwendung der Win32-API
Um diese Einschränkung zu überwinden, verwenden Sie die Win32-API-Funktion AssocQueryString( ) wird empfohlen. Diese Funktion gibt die Zeichenfolge zurück, die einem bestimmten Dateityp zugeordnet ist, sodass Entwickler den ausführbaren Pfad der Standardanwendung extrahieren können.
Der folgende Codeausschnitt zeigt, wie AssocQueryString() verwendet wird:
using System.Runtime.InteropServices; using System.Text; public static string GetDefaultApplicationForExtension(string extension) { const int S_OK = 0; const int S_FALSE = 1; uint length = 0; uint ret = AssocQueryString(AssocF.None, AssocStr.Executable, extension, null, null, ref length); if (ret != S_FALSE) { throw new InvalidOperationException("Could not determine associated string"); } StringBuilder sb = new StringBuilder((int)length); // (length-1) will probably work too as the marshaller adds null termination ret = AssocQueryString(AssocF.None, AssocStr.Executable, extension, null, sb, ref length); if (ret != S_OK) { throw new InvalidOperationException("Could not determine associated string"); } return sb.ToString(); }
Durch den Aufruf dieser Funktion und die Angabe der Dateierweiterung als Argument können Entwickler den Standardanwendungspfad erhalten und so Dateien in der gewünschten Anwendung programmgesteuert öffnen.
Das obige ist der detaillierte Inhalt vonWie kann ich programmgesteuert die Standardanwendung für einen Dateityp in .NET finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!