Feedback

C# - Programmpfad mittels Erweiterung ermitteln

Veröffentlicht von am 18.08.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;
Snippet in VB übersetzen
[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!