c#开始菜单样式列表框
大家好,我正在开发一个“开始”菜单样式的程序,我想知道如何获得固定程序和所有程序列表。我开始了一些研究,并将发布我的发现,这样你们都可以帮助填补空白 为了获取程序图标,我找到了这个c#开始菜单样式列表框,c#,listview,startmenu,installed-applications,C#,Listview,Startmenu,Installed Applications,大家好,我正在开发一个“开始”菜单样式的程序,我想知道如何获得固定程序和所有程序列表。我开始了一些研究,并将发布我的发现,这样你们都可以帮助填补空白 为了获取程序图标,我找到了这个 public static Icon IconFromFilePath(string filePath) { var result = (Icon)null; try { result = Icon.ExtractAssociatedIcon(filePath); }
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 Menu\Programs
C:\ProgramData\Microsoft\Windows\Start菜单\
这些位置是什么?startmenu如何使用这些位置?我如何使用它们?希望我不是要简短,但我想表明我真的在努力解决这个问题,并一直在寻找吨。谢谢 首先,您可以使用以下方法获取用户的固定程序列表: %AppData%\Microsoft\Internet Explorer\Quick Launch\User 固定\开始菜单 归功于 该文件夹和您已经找到的文件夹都包含“开始”菜单的所有快捷方式。您可以使用
目录.EnumerateFiles
或目录.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 );
有关更多信息,请参阅。您在这里问什么?“开始”菜单以特定方式显示这些文件夹的内容(在“所有程序”和“固定”列表上)。没有什么特别的事情发生。你能澄清一下你的问题吗?当然我会试试,简言之,我想知道我自己如何重新创建“固定”和“所有程序”列表。好的,听起来你已经有了你需要的信息。你遗漏了什么?你可以从这里得到固定列表:堆栈溢出不是用来编写整个程序的,你能更具体地说明你正在努力解决什么吗?这个问题仍然非常广泛。我会给你一个向上投票的机会,因为我在犹豫,但以后要尽量控制你的问题范围。注意,我没有发布
DataTemplate
,因为我的答案已经很长了。如果您有关于如何绑定到模板中的图像,或如何设置命令以运行过程的问题,请启动
,我将询问有关该部分的另一个问题。谢谢!这正是我所需要的。如果我需要更多的过程帮助,我会制作一个线程。开始,但我想我理解它。