【问题标题】:show a list of installed applications显示已安装应用程序的列表
【发布时间】:2015-09-17 14:35:57
【问题描述】:

当您在“我的电脑”中的图片中按右键时,Windows 会显示与该类型文件“打开方式...”相关联的已安装应用程序列表 如何使用 WinAPi 获得相同的程序列表并用 C++ 语言创建函数

【问题讨论】:

  • 我建议您搜索 MSDN 站点,或者在那里询问。不过很有趣的问题。

标签: c++ file associations


【解决方案1】:

MSDN 声明“默认情况下,任何注册为HKEY_CLASSES_ROOT\Applications 子项的应用程序都会显示在打开方式 对话框中。”。

但是,列出了两个例外:NoOpenWith 子项(空的REG_SZ)从打开方式 对话框中删除应用程序。带有扩展列表的 SupportedTypes 键将应用程序限制为仅匹配 打开方式 对话框。

注意HKCR是一个虚拟hive,由HKCUHKLM的相关部分合并而成。

【讨论】:

    【解决方案2】:

    “打开方式...”菜单位于注册表项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts,您可以从那里通过create some functions 检索数据。 MSDN 有大量的注册表函数来获取/设置值以及遍历树。

    因为这样做并不是一段微不足道的代码(需要进行大量错误检查),而且我不会假设知道您的全部需求是什么,所以我将把实现留给您尝试先做(如果您对实施有疑问,请返回 SO)。

    希望能有所帮助。

    【讨论】:

    • 我很确定这是不正确的。例如,它错过了等效的HKLM 键。我还怀疑这不是一个记录/稳定的 API。
    • @MSalters suspect that this is not a documented/stable API ?你具体指的是什么? MSDN API 的?
    • 是的,就是这样。您需要一个在 MSDN 中记录的 API,但不是 MSDN 说它将(或可能)在未来的 Windows 版本中消失的 API,或者标记为实验性的 API,等等。
    猜你喜欢
    • 2016-05-11
    • 2013-01-18
    • 1970-01-01
    • 2018-01-05
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多