Получить название программы, которая по умолчанию запускает файл
Имеется проект 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, пока я не закрою файл, если я уберу эту строку, то я вообще никак не могу получить название программы.
Как я могу открывать файлы в программе и не смотря на то, что она уже работает получать ее название? Просто есть несколько программ, которые открывают данный формат, и у каждого пользователя используется разная версия этих программ.