首页 > 后端开发 > C++ > 如何以编程方式确定 Windows 上特定文件类型的默认应用程序?

如何以编程方式确定 Windows 上特定文件类型的默认应用程序?

DDD
发布: 2025-01-04 20:09:40
原创
186 人浏览过

How Can I Programmatically Determine the Default Application for a Specific File Type on Windows?

如何识别 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板