Feedback

C# - Programmpfad mittels Erweiterung ermitteln

Veröffentlicht von am 8/18/2008
(1 Bewertungen)
Anhand der Erweiterung wav, mp3, etc. kann dazu der verknüpfte Programmpfad ausgelesen werden. Die Erweiterung kann "wav" und ".wav" verarbeiten.

Beispiel:
//Gibt C:\Programme\Windows Media Player\wmplayer.exe zurück
GetPathFileExtention("mp3")

Nicht vergessen, folgende Referenzen zu setzen:
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
[DllImport("kernel32.dll")]
static extern uint GetTempPath(uint nBufferLength, [Out] StringBuilder lpBuffer);

[DllImport("shell32.dll", EntryPoint = "FindExecutable")]
static extern long FindExecutableA(string lpFile, string lpDirectory, [Out] StringBuilder lpResult);

/// <summary>
/// Gibt den Pfad des Programmes zurück mit der die Extension "verbunden" ist.
/// </summary>
/// <param name="extension">Dateierweiterung (pdf, mp3, ...)</param>        
public static string GetPathFileExtention(string extension)
{
    string tempFileName = Path.ChangeExtension(Path.GetTempFileName(), extension);
    string tempPathFile = Path.Combine("temp", tempFileName);
    StringBuilder sb = new StringBuilder(1024);
    File.Create(tempFileName);
    long ret = FindExecutableA(tempFileName, string.Empty, sb);
    if (ret >= 32) return sb.ToString();
    else return string.Empty;
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!