检索 Windows 中文件类型的默认应用程序
要确定打开特定类型文件的默认应用程序,您可以使用Windows 注册表。在HKEY_CLASSES_ROOT中,每个文件扩展名都有一个对应的键。默认应用程序存储在此键的默认值中。
请考虑以下打开 HTML 文件的示例:
但是,此方法有局限性。它依赖于注册表的实现,这可能因 Windows 版本而异。更可靠的方法涉及 Win32 API 函数 AssocQueryString。
AssocQueryString
AssocQueryString 允许您查询特定文件的默认应用程序类型。
语法:
uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut );
标志:
Str:
示例:
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 ); AssocF flags = AssocF.Open_ByExeName; AssocStr str = AssocStr.Command; StringBuilder sb = new StringBuilder(); uint pcchOut = 0; uint ret = AssocQueryString(flags, str, ".txt", null, sb, ref pcchOut); if (ret == 0) { Console.WriteLine($"Default text editor: {sb.ToString()}"); } else { Console.WriteLine("Error retrieving default text editor."); }
此方法提供了一种更可靠的方法来确定 Windows 中文件类型的默认应用程序。
以上是如何以编程方式确定 Windows 中文件类型的默认应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!