Получить название программы, которая по умолчанию запускает файл

Рейтинг: 0Ответов: 0Опубликовано: 24.04.2023

Имеется проект WinForms, при нажатии на кнопку хочу открывать файл приложением по умолчанию. Приложение по умолчанию имеет возможность открывать в одном окне несколько файлов.

Вкладки открытых файлов в программе.

Мне необходимо при открытии этих файлов в этой программе выводить название самой программы.

Использую следующий подход:

var process = new Process();
process.StartInfo = new ProcessStartInfo()
{
   UseShellExecute = true,
   FileName = file.WorkFileName
};
process.Start();
MessageBox.Show(process.MainWindowTitle);
process.WaitForExit();

Но при открытии нового файла в уже открытом приложении появляется ошибка:

System.InvalidOperationException: "Нет процессов, связанных с этим объектом."

В свою очередь файл открывается в этой программе, но при попытке получить полное название открывающей программы выводится ошибка выше. Помимо этого process.WaitForExit(); блокирует доступ к моей программе на WinForms, пока я не закрою файл, если я уберу эту строку, то я вообще никак не могу получить название программы.

Как я могу открывать файлы в программе и не смотря на то, что она уже работает получать ее название? Просто есть несколько программ, которые открывают данный формат, и у каждого пользователя используется разная версия этих программ.

Ответы

Ответов пока нет.