询问 Windows 7 - 默认情况下什么程序打开此文件
在 Windows 7 上跳过注册表是询问哪个程序路径打开此文件扩展名 (.avi) 的最佳方法吗?或者有更好的API可以使用吗?
在注册表中导航此内容的正确方法是什么?我注意到,当我安装 DivX 播放器时,它从 VLC 播放器中窃取了 .avi 扩展名。我在文件顶部右键单击并将默认程序设置为 VLC,但我没有看到它存储在 HKCU 中的位置。
我的最终目标是拥有一个能够识别与文件扩展名关联的应用程序的程序。我想让它询问操作系统,而不是存储我自己的独立查找数据。
Is jumping around the registry the best way to ask what program path opens this file extension (.avi) on Windows 7? or is there a better API to use?
What is the proper way to navigate this in the registry? I noticed when I installed the DivX player that it stole the .avi extension from VLC player. I right moused ontop of the file and set the default program to VLC, but I don't see where that gets stored in HKCU.
My end goal is to have a program that is aware of the application that a file extension is associated with. And I would like to have it ask the OS instead of storing my own independent lookup data.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您没有说明您正在使用哪种语言进行开发,但是您应该能够通过调用
shlwapi.dll
上的assocquerystring
来完成此操作。assocquerystring
API 函数将返回文件关联数据,而无需手动深入注册表并处理其中的恶魔。大多数语言都支持调用 Windows API,因此您应该可以开始使用了。更多信息可以在这里找到:
http://www.pinvoke.net/default.aspx/ shlwapi.assocquerystring
和此处:
http:// /msdn.microsoft.com/en-us/library/bb773471%28VS.85%29.aspx
编辑 :一些示例代码:
You don't say what language you are developing in, however you should be able to do this with a call to
assocquerystring
onshlwapi.dll
.The
assocquerystring
API function will return file association data without having to manually dive into the registry and deal with the demons that lie within. Most languages will support calling the Windows API so you should be good to go.More information can be found here:
http://www.pinvoke.net/default.aspx/shlwapi.assocquerystring
and here:
http://msdn.microsoft.com/en-us/library/bb773471%28VS.85%29.aspx
EDIT : Some sample code: