我正在使用 C++ 为 Windows 开发基于控制台的文件浏览器,并且很难将上下文菜单组合在一起,该菜单列出与文件关联的操作并在它们上调用命令。目前最大的问题是将操作与文件类型相关联。
我知道在 HKEY_CLASSES_ROOT 中打开和调整注册表项的过程,但我找不到实际获取操作及其命令的方法,因此我可以从中构建上下文菜单。
注册表中这些协会的一般结构是:
HKEY_CLASSES_ROOT\(extension)\(default) - 文件类型
HKEY_CLASSES_ROOT\filetype\(default) - 文件类型描述
HKEY_CLASSES_ROOT\filetype\shell\action\(default) - 操作描述
HKEY_CLASSES_ROOT\filetype\shell\action\command\(默认) - 对文件调用的命令
我想知道是否有一种方法(希望使用 Windows API)可以获得与文件类型相关的所有操作。至少我可以在注册表中检查这些操作的命令......
此外,这种方法似乎不适用于我系统上的一些常见文件类型(例如 mp3),因为默认键留空,另一个键(“PercievedType”)设置为音频......我怎样才能得到这些动作对于这样的事情?
最后,如果有更好的方法来做到这一点,我很乐意听到它,我通常讨厌与注册表打交道。我宁愿有一个简单的 Windows 调用,它可以让我得到动作和命令......