Heim > Backend-Entwicklung > C++ > Wie kann ich programmgesteuert die Standardanwendung für einen Dateityp in .NET finden?

Wie kann ich programmgesteuert die Standardanwendung für einen Dateityp in .NET finden?

Linda Hamilton
Freigeben: 2025-01-04 10:08:39
Original
530 Leute haben es durchsucht

How Can I Programmatically Find the Default Application for a File Type in .NET?

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();
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage