C# “开始”菜单样式列表框

本文关键字:样式 列表 菜单 开始 | 更新日期: 2023-09-27 18:34:14

大家好,我正在开发一个开始菜单风格的程序,想知道我是如何获得固定程序和所有程序列表的。我开始了一些研究,并将发布我的发现,以便你们都可以帮助填补空白。

为了获取程序图标,我发现了这个...

public static Icon IconFromFilePath(string filePath)
{
    var result = (Icon)null;
    try
    {
        result = Icon.ExtractAssociatedIcon(filePath);
    }
    catch (System.Exception)
    {
        // swallow and return nothing. You could supply a default Icon here as well
    }
    return result;
}

为了获取所有程序和固定程序,我找到了这些路径......

%USERPROFILE%''appdata''Roaming''Microsoft''Windows''Start 菜单''程序

C:''ProgramData''Microsoft''Windows''Start Menu''

这些位置

是什么,开始菜单如何使用这些位置?如何使用它们?希望我不是在简要介绍,而是想表明我真的在努力解决这个问题,并且一直在寻找很多。谢谢!

C# “开始”菜单样式列表框

首先,可以使用以下命令获取用户的固定程序列表:

%

AppData%''Microsoft''Internet Explorer''Quick Launch''User 固定''开始菜单

信用 https://superuser.com/a/171129

该文件夹和您已经找到的文件夹都包含"开始"菜单的所有快捷方式。您可以使用 Directory.EnumerateFilesDirectory.GetFiles 获取文件。获得文件列表后,您需要为每个文件创建 ViewModel 对象:

public class StartMenuItem
{
    public Image Icon {get; set;}
    public String LinkPath {get; set;}
}

创建这些集合并将列表视图ItemSource绑定到该集合。最后,要启动应用程序,您只需使用Process.Start

ProcessStartInfo info = new ProcessStartInfo ( "example.lnk" );
info.CreateNoWindow = true;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
info.RedirectStandardInput = true;
Process whatever = Process.Start( info );

有关详细信息,请参阅使用 Process.Start C# 通过快捷方式运行应用程序。