如何识别 Windows 上特定文件类型的默认应用程序
在开发与各种文件类型交互的应用程序时,有必要识别与打开这些文件关联的默认应用程序。为了实现这一目标,Windows 提供了一种利用特定于平台的功能的方法。
注册表虽然常用,但并不是检索此信息的可靠方法,Windows 8.1 中的不稳定性就证明了这一点。因此,首选方法是利用 Win32 API,特别是 AssocQueryString 函数。
使用 AssocQueryString 需要从 Shlwapi.dll 库导入必要的定义并创建包装方法:
using System.Runtime.InteropServices; [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)] public static extern uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut ); [Flags] public enum AssocF { None = 0, ... } public enum AssocStr { Command = 1, ... }
示例实现如下:
static string AssocQueryString(AssocStr association, string extension) { ... return sb.ToString(); }
通过使用适当的方法调用此函数参数,开发人员可以检索与打开特定文件类型相关的可执行文件的路径。这允许在您自己的软件中启动文件时与外部应用程序无缝集成。
以上是如何以编程方式确定 Windows 上特定文件类型的默认应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!