【发布时间】:2010-08-21 06:40:09
【问题描述】:
我正在使用 C++ 为 Windows 开发基于控制台的文件浏览器,并且很难将列出与文件关联的操作并在其上调用命令的上下文菜单组合在一起。目前最大的问题是让操作与文件类型相关联。
我知道在 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),因为默认键留空,而另一个键(“PercievedType”)设置为音频...我该如何获取此类操作的操作?
最后,如果有更好的方法来做到这一点,我很乐意听到,但我通常讨厌与注册表打交道。我宁愿有一个简单的 Windows 调用来获取操作和命令...
【问题讨论】:
标签: c++ windows registry file-type file-association