【发布时间】:2015-08-23 19:01:06
【问题描述】:
如何找到特定文件扩展名的默认应用程序?
这似乎因 windows 的版本而异,但我发现的最佳选择似乎是在 shlwapi 中使用 AssocQueryString,这对于某些类型的应用程序似乎效果很好。
但是,它在 Windows 8 中失败,可能是因为默认的 pdf 查看器有一个 Metro“应用程序”。
我想知道的原因是,如果有默认应用程序,我可以为给定文件启动默认应用程序。 - 否则,我很乐意给出一条消息:“文件已生成,但您没有安装查看器来显示它。”
【问题讨论】:
-
很遗憾,我认为 Metro 文件关联系统尚未暴露于桌面应用程序。
-
@JonathanPotter:例如,如果您可以提供一种解决方法,以便我可以确定给定的文件扩展名绝对没有关联的查看器,那么我愿意接受这些答案行,尤其是如果您还引用了 MSDN 或类似网站。
-
用 ShellExecuteEx 启动它并响应该函数的错误报告。
标签: winapi windows-8 windows-7 microsoft-metro windows-8.1