我无法找到解决此问题的方法。我只看到了一些代码,这些代码几乎无法使注册表中的某些exe文件与该特定扩展名相关联。
如果您转到“打开方式”项目,我想要的是Windows资源管理器上下文菜单将为您提供的确切列表。如果我必须使用p / invoke做得很好,我只想要资源管理器显示的确切列表。这将包括友好名称以及相关程序的路径。
我要为pdf检索的列表:
我想为png检索的列表:
如果您尝试通过单击“选择默认程序...”进行选择,可能值得注意的是,Microsoft将其称为“推荐程序”。
那么该对话框是如何填充的?因为它必须与Open With上下文菜单使用相同的方法。
这个问题在SO上有一些流行的答案,但大多数只有一半的工作。
如果AssocQueryString
函数返回多个结果,则它接近答案,但我相信它只能获得与之关联的实际程序。