windows mobile進程查看器開發(三)—— 獲得進程表徵圖

來源:互聯網
上載者:User

這裡用了ExtractIconEx函數來提取進程的表徵圖

 

在Process類中添加幾個函數:

 

public string getFullPath() //獲得進程檔案的路徑<br /> {<br /> StringBuilder s = new StringBuilder();<br /> s.Capacity=100;<br /> Process.GetModuleFileName(this.ProcessId, s, s.Capacity);<br /> string path = Path.GetFullPath(s.ToString());<br /> return path;<br /> }</p><p> public Icon GetIconFromExe()<br /> {<br /> IntPtr hLargeIcon = IntPtr.Zero;<br /> IntPtr hSmallIcon = IntPtr.Zero;<br /> string path = this.getFullPath();<br /> try<br /> {<br /> ExtractIconEx(path, 0, ref hLargeIcon, ref hSmallIcon, 1);<br /> }<br /> catch (Exception ex)<br /> {<br /> throw new Exception(ex.Message);<br /> }<br /> Icon ic = null;<br /> try<br /> {<br /> ic = (Icon)Icon.FromHandle(hSmallIcon).Clone();<br /> }<br /> catch (Exception e)<br /> {<br /> return null;<br /> }<br /> return ic;<br /> }</p><p> [DllImport("coredll.dll", CharSet = CharSet.Auto)]<br /> public extern static int GetModuleFileName(uint hModule, StringBuilder strFullPath, int nSize);</p><p> [DllImport("coredll.dll", SetLastError = true)]<br /> private static extern IntPtr ExtractIconEx(string fileName, int index, ref IntPtr hIconLarge, ref IntPtr hIconSmall, uint nIcons);<br />

 

來看一下顯示獲得的表徵圖,這需要在介面的listView控制項中加入imageList

 

private void RefreshList()<br /> {<br /> processes = Process.GetProcesses();</p><p> ListViewItem lvi;</p><p> listProcess.BeginUpdate();<br /> listProcess.Items.Clear();<br /> ImageList imageListSmall = new ImageList();<br /> int i = 0;</p><p> foreach (Process p in processes)<br /> {<br /> lvi = new ListViewItem(p.ProcessName);<br /> Icon ic;<br /> ic = p.GetIconFromExe();<br /> if (ic != null)<br /> {<br /> imageListSmall.Images.Add(ic);<br /> lvi.ImageIndex = i++;<br /> }</p><p> String pid = String.Format("{0:x}", p.ProcessId);<br /> lvi.SubItems.Add(pid);<br /> lvi.SubItems.Add(p.ThreadCount.ToString());<br /> listProcess.Items.Add(lvi);<br /> }<br /> listProcess.SmallImageList = imageListSmall;</p><p> listProcess.EndUpdate();<br /> }</p><p>

 

其中listProcess是一個listView控制項的執行個體

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.