如何找到特定文件扩展名的默认应用程序?
这似乎取决于Windows的版本,但是我发现的最佳选项似乎是在shlwapi中使用AssocQueryString,这似乎对某些类型的应用程序非常有效。
然而,它在Windows 8中失败,可能是因为默认的pdf查看器有一个地铁“App”。
我想知道的原因是,如果有默认应用程序,我可以启动给定文件的默认应用程序。 - 否则,我很乐意给出一条消息:“文件已生成,但您没有安装任何查看器来显示它。”
答案 0 :(得分:0)
答案是使用os.startfile(在python中),它似乎等同于ShellExecute(和ShellExecuteEx),尽管有简化的界面。
try:
os.startfile(r'abspath/to/file', 'open)
except WindowsError:
os.startfile(r'abspath/to', 'open') # Fallback to opening directory.
对Jonathan和David的信任,他建议找到应用程序路径的原始方法不再适用于metro-apps。事实证明,无论如何,申请路径并不是非常重要。