activex.net.ru

ActiveX .NET SharePoint Утилиты Скрипты Статьи ... Форум

Статьи

Пример определения приложения, ассоциированного с заданным файлом (C#)

Ниже приведен пример использования Win32 API функции FindExecutable для получения полного пути к приложению, которое ассоциировано с заданным файлом.

Текст приложения findexec на C#:


using System;
using System.Text;

namespace findexec
{
/// <summary>
/// Пример определения приложения, ассоциированного с заданным файлом
/// </summary>
class CFindExec
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
[System.Runtime.InteropServices.DllImport("shell32.dll")]
public static extern int FindExecutable(string lpFile, string lpDirectory, StringBuilder lpResult);
static void Main(string[] args)
{
// заданный файл
string sFile = "C:\\Windows\\clock.avi";
int ret;
StringBuilder sbExePath = new StringBuilder(260);
ret = FindExecutable(sFile, null, sbExePath);

if (ret == 2)
Console.WriteLine("The specified file was not found.");
else if (ret == 31)
Console.WriteLine("There is no association for the specified file type.");
else if (ret == 8)
Console.WriteLine("The system is out of memory or resources.");
else if (ret > 32)
{
// отображаем путь к приложению, связанному с данным файлом
Console.WriteLine(sbExePath.ToString());
}
}
}
}

Результат выполнения данной программы на моем компьютере:
C:\Program Files\Windows Media Player\wmplayer.exe

Исходный текст приложения: findexecapp.zip



Copyright © 2000-2017 Христофоров Юрий Rambler's Top100

   Rambler's Top100