我想在遍历进程的时候把进程的图标显示在一个CListCtrl里,该怎么办啊?
有没有代码可以看下呢?

解决方案 »

  1.   

    EnumProcesses枚举进程,GetProcessImageFileName获得可执行文件名然后从文件中读取图标资源
      

  2.   

    EnumProcesses得到所有进程ID,然后循环
    OpenProcess打开进程
    GetModuleFileName获取EXE文件路径
    LoadLibrary载入EXE文件
    EnumResourceNames查出第1个图标名称(需要一个回调函数)
    LoadIcon载如图标
    Add图标到CImageList
    InsertItem添加项目到CListCtrl
    FreeLibrary释放EXE文件
    CloseHandle关闭进程
    继续循环
      

  3.   

    从文件路径取得图标:
    dwRetVal = SHGetFileInfoA(pPath, 0, &SFI, sizeof(SFI), SHGFI_SMALLICON | SHGFI_ICON);
    if(dwRetVal > 0)
    pOneItem->hSmallIcon = SFI.hIcon;dwRetVal = SHGetFileInfoA(pPath, 0, &SFI, sizeof(SFI), SHGFI_LARGEICON | SHGFI_ICON);
    if(dwRetVal > 0)
    pOneItem->hBigIcon = SFI.hIcon;Add所有图标到ImageList , 设置CListCtrl的ImageList , ...