Мне нужно получить имя программы, связанной с расширением файла для текущего пользователя. Если вы щелкнете правой кнопкой мыши по файлу и выберете свойства, тогда мне нужно имя программы, которое находится справа от строки «Opens with».
например. Для ".xls" я хочу получить ответ "Microsoft Office Excel" или любую другую программу, которую пользователь использует в качестве программы по умолчанию для открытия файлов .xls.
Я решил, что это не так просто, как просто зайти в HKEY_CLASSES_ROOT и выбрать его, поскольку он также может быть указан в HKEY_LOCAL_MACHINE или HKEY_CURRENT_USER или HKEY_USERS.
Может быть, все, что мне нужно знать, - это порядок размещения, используемый Windows, чтобы определить это и как добраться до каждого из местоположений. Конечно, для этого был бы идеальным вызов Windows API.
Этот вопрос похож на:
Как получить значок и описание из расширения файла с помощью Delphi? , но на этот вопрос ответили только как получить описание расширения и значок соответствующей программы. Я не мог найти способ расширить это, чтобы также получить имя связанной программы.
Я использую Delphi 2009 и мне нужно решение, которое работает на Windows XP, Vista и 7.
Спасибо всем за ответы.
Мне кажется, что имя исполняемого файла в конце концов отсутствует в реестре. И после тщательного поиска Windows API, который даст имя, я не смог найти его.
Я думаю, что ответ Меф тогда самый лучший. Получить имя исполняемого файла из информации, включенной в исполняемый файл программы.