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''
这些位置是什么,开始菜单如何使用这些位置?如何使用它们?希望我不是在简要介绍,而是想表明我真的在努力解决这个问题,并且一直在寻找很多。谢谢!
首先,可以使用以下命令获取用户的固定程序列表:
%AppData%''Microsoft''Internet Explorer''Quick Launch''User 固定''开始菜单
信用 https://superuser.com/a/171129
该文件夹和您已经找到的文件夹都包含"开始"菜单的所有快捷方式。您可以使用 Directory.EnumerateFiles
或 Directory.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# 通过快捷方式运行应用程序。