【问题标题】:Programmatically access the "Open with" Windows Explorer menu list from .NET以编程方式从 .NET 访问“打开方式”Windows Explorer 菜单列表
【发布时间】:2010-01-10 16:45:14
【问题描述】:

在 Windows 资源管理器中右键单击文件时,“打开方式”菜单项会根据单击文件的文件类型显示可用应用程序列表。

以这张图为例:


(来源:magerquark.de

现在我希望能够以编程方式从 C# .NET 2.0 应用程序中读取给定文件扩展名/类型(例如“png”)的应用程序列表。

例如

public class FileOpenInfo
{
    public string ApplicationName { get; }
    public string ApplicationPath { get; }

    public static FileOpenInfo[] GetInformation( string extension );
}

问题:

有没有可能得到这份名单?

【问题讨论】:

    标签: c# .net windows-shell windows-explorer


    【解决方案1】:

    与文件扩展名关联的程序列表存储在 Windows 注册表中。

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
    

    Microsoft.Win32 包含访问注册表的类。

    【讨论】:

    • 谢谢,我去看看。我猜该应用程序可能需要管理权限(它没有)来枚举注册表。
    • 我的猜测是在没有提升的情况下枚举是可能的。确保使用正确的 RegistryKey 类重载以只读方式打开它。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 2011-03-09
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多