【发布时间】:2015-09-17 14:35:57
【问题描述】:
当您在“我的电脑”中的图片中按右键时,Windows 会显示与该类型文件“打开方式...”相关联的已安装应用程序列表 如何使用 WinAPi 获得相同的程序列表并用 C++ 语言创建函数
【问题讨论】:
-
我建议您搜索 MSDN 站点,或者在那里询问。不过很有趣的问题。
标签: c++ file associations
当您在“我的电脑”中的图片中按右键时,Windows 会显示与该类型文件“打开方式...”相关联的已安装应用程序列表 如何使用 WinAPi 获得相同的程序列表并用 C++ 语言创建函数
【问题讨论】:
标签: c++ file associations
MSDN 声明“默认情况下,任何注册为HKEY_CLASSES_ROOT\Applications 子项的应用程序都会显示在打开方式 对话框中。”。
但是,列出了两个例外:NoOpenWith 子项(空的REG_SZ)从打开方式 对话框中删除应用程序。带有扩展列表的 SupportedTypes 键将应用程序限制为仅匹配 打开方式 对话框。
注意HKCR是一个虚拟hive,由HKCU和HKLM的相关部分合并而成。
【讨论】:
“打开方式...”菜单位于注册表项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts,您可以从那里通过create some functions 检索数据。 MSDN 有大量的注册表函数来获取/设置值以及遍历树。
因为这样做并不是一段微不足道的代码(需要进行大量错误检查),而且我不会假设知道您的全部需求是什么,所以我将把实现留给您尝试先做(如果您对实施有疑问,请返回 SO)。
希望能有所帮助。
【讨论】:
HKLM 键。我还怀疑这不是一个记录/稳定的 API。
suspect that this is not a documented/stable API ?你具体指的是什么? MSDN API 的?