Я работаю над консольным файловым браузером для Windows на C ++ и испытываю трудности с получением контекстного меню, в котором перечислены действия, связанные с файлом, и для них вызываются команды. Самая большая проблема сейчас связана с привязкой действий к типам файлов.
Мне известен процесс открытия и настройки ключей реестра в HKEY_CLASSES_ROOT, но я не могу найти способ фактически получить действия и их команды, чтобы из него можно было создать контекстное меню.
Общая структура этих ассоциаций в реестре:
HKEY_CLASSES_ROOT \ (расширение) \ (по умолчанию) - тип файла
HKEY_CLASSES_ROOT \ filetype \ (по умолчанию) - описание типа файла
HKEY_CLASSES_ROOT \ filetype \ shell \ action \ (по умолчанию) - описание действия
HKEY_CLASSES_ROOT \ filetype \ shell \ action \ command \ (по умолчанию) - команда вызывается для файла
Мне интересно, есть ли способ (надеюсь, с использованием Windows API), что я могу получить все действия, связанные с типом файла. По крайней мере, тогда я могу проверить эти действия для их команд в реестре ...
Кроме того, этот подход, похоже, не работает с некоторыми распространенными типами файлов (например, mp3) в моей системе, поскольку ключ по умолчанию оставлен пустым, а другой ключ ("PerctainedType") установлен на аудио ... получить действия для чего-то вроде этого?
Наконец, если есть вообще лучший способ сделать это, я бы хотел услышать это, я вообще ненавижу иметь дело с реестром. Я бы предпочел простой вызов Windows, который бы дал мне действия и команды ...