需要添加对System.Management.dll的引用 ,并且不要忘记导入下面的名称空间。
using System.Management;
将ListView和 ImageList控件从可视工具箱拖动到Winform。
将ListView控件的LargeImageList属性设置为ImageList。
添加代码以处理表单加载事件,如下所示
private void button1_Click(object sender, EventArgs e) { using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("select ProcessId, Name, ExecutablePath from Win32_Process")) { using (var results = managementObjectSearcher.Get()) { var processes = results.Cast<ManagementObject>().Select(p => new { ProcessId = (UInt32)p["ProcessId"], Name = (string)p["Name"], ExecutablePath = (string)p["ExecutablePath"] }); listView1.BeginUpdate(); foreach (var pro in processes) { if (System.IO.File.Exists(pro.ExecutablePath)) { var icon = Icon.ExtractAssociatedIcon(pro.ExecutablePath); var key = pro.ProcessId.ToString(); this.imageList1.Images.Add(key, icon.ToBitmap()); this.listView1.Items.Add(pro.Name, key); } } listView1.EndUpdate(); } } }