Welches Programm ist mit einem entsprechendem Dokument (z.B. Excel mit XLS) verknüpft?
Dies ermittelt diese Funktion. Es reicht, wenn die Datei existiert, sie muss nicht den entsprechden Inhalt haben.
So könnte eine leere "temp.xls" erstellt, die entsprechende Exe davon ermittelt und dann die "temp.xml" wieder gelöscht werden.
using System.Runtime.InteropServices;
// public class ........ {
// Api Deklarieren
[DllImport("shell32.dll", EntryPoint = "FindExecutable")]
public static extern long FindExecutableA(
string lpFile, string lpDirectory, StringBuilder lpResult);
/// <summary>
/// Übergibt den Pfad zum Programm, das mit der angegebenen Datei verknüpft ist (z.B. JPG mit C:\...\IrfanView.exe)
/// </summary>
/// <param name="Path">Pfad zur Datei dessen Verknüpfung ermittelt werden soll</param>
/// <returns></returns>
public static string FindExe(string Path)
{
StringBuilder objResult = new StringBuilder(1024);
long lngResult = 0;
lngResult = FindExecutableA(Path, "", objResult);
if (lngResult >= 32)
{
return objResult.ToString();
}
return "";
}
// }
5 Kommentare zum Snippet