CImageList获取进程图标

完整版进程管理器——全路径与图标展示 本文还有配套的精品资源,点击获取 简介:进程管理是操作系统的核心功能,允许用户监控和控制系统进程。本文介绍的“完整版进程管理器”提供了额外的进程信息,包括显示每个进程的全路径文件名和程序图标。这些信息对于识别进程来源、提高系统安全性和优化系统性能至关重要。用户可以通过这一工具结束无用进程,优化资源使用,并通过界面友好的方式管理进程。开发者可能使用了Windows API函数... 阅读详情

//窗体创建时,创建ImageList,并且要设置给Treeview

LRESULT OnCreate(...)

{

    int nSmallCx = ::GetSystemMetrics(SM_CXSMICON);
    int nSmallCy = ::GetSystemMetrics(SM_CYSMICON);
    m_ImgList.Create(nSmallCx, nSmallCy, ILC_MASK|ILC_COLOR32, 0, 1);
    m_treeview.SetImageList(m_ImgList);

}

//往Treeview添加节点,图标从指定exe或dll文件获取,如果获取失败,使用指定序号图标

HTREEITEM AddTreeItem(CTreeViewCtrl& treeCtrl, LPCTSTR szText, LPCTSTR szFilePath,
                                  int defIndex=0, DWORD dwParam=0, HTREEITEM hParent=TVI_ROOT, HTREEITEM hAfter=TVI_LAST)
{
    HTREEITEM hItem = NULL;
    SHFILEINFO sfi;
    memset(&sfi, 0, sizeof(sfi));
    if(0 != SHGetFileInfo(szFilePath, NULL, &sfi, sizeof(sfi), SHGFI_ICON))
    {
        int index = treeCtrl.GetImageList().AddIcon(sfi.hIcon);
        hItem = treeCtrl.InsertItem(TVIF_TEXT|TVIF_IMAGE|TVIF_PARAM|TVIF_SELECTEDIMAGE, szText, index, index, 0, 0, dwParam, hParent, hAfter);
    }
    else
    {
        hItem = treeCtrl.InsertItem(TVIF_TEXT|TVIF_IMAGE|TVIF_PARAM|TVIF_SELECTEDIMAGE, szText, defIndex, defIndex, 0, 0, dwParam, hParent, hAfter);
    }
    return hItem;
}

void ListProcessModules(DWORD dwPId)

 {
        m_treeview.SetRedraw(FALSE);
        m_treeview.DeleteAllItems();

        CImageList& imageList = m_treeview.GetImageList();

        imageList.RemoveAll();

        //添加系统EXE图标

        imageList.AddIcon(LoadIcon(NULL, IDI_APPLICATION));

        //添加系统dll图标
        TCHAR szSysPath[MAX_PATH] = {0};
        ::GetSystemDirectory(szSysPath, sizeof(szSysPath)/sizeof(szSysPath[0]));
        _tcscat_s(szSysPath, _T("//Shell32.dll"));       
        SHFILEINFO sfi;
        memset(&sfi, 0, sizeof(sfi));
        if(0 != SHGetFileInfo(szSysPath, NULL, &sfi, sizeof(sfi), SHGFI_ICON))
        {
            int index = imageList.AddIcon(sfi.hIcon);      
        }

        //打开进程,枚举模块

        HANDLE hProcess = ::OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ|PROCESS_VM_OPERATION, FALSE, dwPId);
        if (hProcess)
        {
            HMODULE hMods[1024];
            DWORD cbNeeded = 0;

            if( ::EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
            {
                HTREEITEM hRoot = TVI_ROOT;
                TCHAR szText[MAX_PATH] = {0};
                TCHAR szProcessName[MAX_PATH] = _T("<unknown>");
                ::GetModuleFileNameEx( hProcess, hMods[0], szProcessName, sizeof(szProcessName)/sizeof(TCHAR) );
                _stprintf_s(szText, _T("[0x%X]/t%s"), dwPId, szProcessName );
                //添加进程节点
                hRoot = AddTreeItem(m_treeview, szText, szProcessName);


                for (DWORD i = 0; i < (cbNeeded / sizeof(HMODULE)); i++ )
                {
                    TCHAR szModName[MAX_PATH];
                    if ( ::GetModuleFileNameEx( hProcess, hMods[i], szModName, sizeof(szModName)/sizeof(TCHAR)))
                    {
                        _stprintf_s(szText, _T("[0x%08X]/t%s"), hMods[i], szModName );
                        //添加模块子节点

                        AddTreeItem(m_treeview, szText, szModName, 1, 0, hRoot);
                        }
                }
                m_treeview.Expand(hRoot);
            }

            ::CloseHandle(hProcess);
        }
       
        m_treeview.SetRedraw();
    }

在Visual Studio 2003中提取文件图标并集成到CImageList 是一个广泛使用的Windows API函数,它能够获取文件系统中的文件或文件夹的相关信息。它不仅能够获取图标,还能获取文件大小、属性、类型等信息。对于开发者来说,这提供了一个非常方便的途径来丰富用户界面元素,特别是文件管理类应用。函数的声明如下:pszPath:指向以null结尾的字符串的指针,该字符串包含了要获取信息的文件或文件夹的路径。:该参数通常为0,因为不总是需要获取文件属性。psfi:指向结构的指针,它将接收文件信息。cbfileInfo:指定psfi。 阅读详情

相关推荐

如何获取一个EXE程序中的图标.doc

vb.net中获取一个exe程序文件图标的各种方法,可以用API函数,vb.net更加简单。                            

【Qt】获取当前系统进程并展示(带Icon,同附带扩展名Icon测试 #附效果图#)

1. Qt 获取当前系统进程并展示(附效果图) 纯代码,无GUI 2. 获取打开扩展名Icon 3. QListWidget应用实例

此地无银 2764

完整版进程管理(显示进程全路径文件名和程序图标).e.rar

完整版进程管理(显示进程全路径文件名和程序图标).e.rar

获得任何应用程序的图标

uses         ShellAPI;   procedure TForm1.getIcon(filename:string);                         //获得应用程序的图标var  icLarge,   icSmall:   TIcon;  hLarge,   hSmall:   HICON;  il1,il2:TImageList;begin  ic

xiucaiyao的专栏 664

ERA5数据驱动WRFV4.4实战:单层嵌套配置与关键报错排查指南

本文详细介绍了使用ERA5再分析数据驱动WRFV4.4模式进行单层嵌套模拟的完整实战流程。内容涵盖从数据精准下载、WPS前处理配置、WRF核心参数设置到高频报错的深度排查与解决方案,旨在帮助初学者在有限服务器资源下,高效完成WRF模拟并规避常见陷阱。

q5r6s7的博客 770

jira bug 仪表盘

背景: 更直观管理bug,方便项目组内人员,创建、修改、关闭bug 使用的场景: 筛选器结果:可用来展示open、什么级别open的问题,方便督促开发快速解决问题 2维筛选器统计:统计经办人下bug状态是open,具体什么等级的数量。有利于开发可以调整工作进度 问题统计: 统计某版本,产出对应等级的bug数量,用于后期测试报告的编写 饼图:直观展示筛选人员的bug,例如想要看出每位测试人员产出bug比例 创建与解决的问题对比图: ...

chuanying_xiaoqi的博客 813

windows mobile进程查看器开发(三)—— 获得进程图标

<br />这里用了ExtractIconEx函数来提取进程的图标<br /> <br />在Process类中添加几个函数:<br /> <br /> public string getFullPath() //获得进程文件的路径 { StringBuilder s = new StringBuilder(); s.Capacity=100; Process.GetModuleFileName(t

kindlucy的专栏 1135

手把手教你用 Docker 构建自己的 CentOS 基础镜像

目录一、准备CentOS基础镜像二、撰写Dockerfile三、构建Docker镜像四、生成Docker容器 相信码农们经常会听说:虚拟机将成为历史,Docker才是未来 !!! 事实如此,现在大部分公司都在用 Docker 技术,想拥有自己的 Docker 专属镜像,那么 Dockerfile 就是入门,现在让我们一起来看一下 ------ 构建 Docker 镜像的全过程。 好文章 记得收藏...

Nick.Peng's Blogs 1万+

通过窗口句柄获取窗口图标的几种办法

<br />1.枚举窗口 ---->获得窗口句柄---->GetClassLong<br /> <br />2.枚举窗口(EnumWindows)---->获取窗口ID(GetWindowThreadProcessId)---->通过进程ID获取进程句柄(OpenProcess)---->进程对应的可执行文件路径(GetModuleFileNameEx)---->提取图标(ExtractIconEx)<br /> <br /> <br /> <br />3.HIMAGELIST hil;<br />   S

oldmtn的专栏 6445

别光看Demo了!用UE5 Lyra框架快速搭建你的多人对战游戏原型(含完整配置流程)

本文详细介绍了如何利用UE5 Lyra框架快速搭建多人对战游戏原型,包含完整的配置流程和实战案例。Lyra作为可直接二次开发的游戏模板,内置了GAS技能系统、Enhanced Input输入控制等核心功能,大幅缩短开发周期。通过替换角色模型、调整武器数值和配置新地图规则,开发者可在48小时内完成科幻团队竞技游戏原型的搭建。

weixin_28717411的博客 455

HTML爱心字母雨(完整代码)

HTML语言实现爱心字母雨的完整代码。

AIGC 2万+

列表框显示进程图标

昨天调各种图标调了半了,改bug改到今天凌晨,总结一下昨天。 列表框中能够直接加入图标,但是不可以改变字体颜色、背景颜色等,因此我用了pudn上的一个类CReportCtrl CReportCtrl 这个类把列表框给重绘了,功能十分强大。 下面说一下如何获取进程图标 .h CImageList ProcessImg;//这个定义一定要放到头文件中,定义成全局变量,不然不会显示 .cpp

倒计时 1724

用 SAP-ABAP-1 把 ABAP 代码读懂:从 Generative AI Hub Orchestration 到 Joule 落地的实战指南

SAP-ABAP-1 是 SAP 推出的 ABAP 专用基础模型,专注于代码解释与理解。它能显著降低企业遗留系统的维护成本,帮助开发人员快速掌握复杂业务逻辑。该模型通过 SAP Generative AI hub 托管,支持 128,000 tokens 的上下文长度,适合分析大型 ABAP 类和 CDS 视图。典型应用场景包括代码解释、迁移辅助和云合规检查。调用需通过 Orchestration service 进行,确保企业级安全治理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1211

CImagelist 基本用法

1.综述 在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。 图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储...

1108

热视觉2:使用Python和OpenCV从图像中测量温度

这篇博客将介绍学习热/中远红外视觉的基础知识,gray8 和 gray16 图像(即最常见的热成像格式)之间的差异,学习如何使用Python和OpenCV从热图像中的每个像素点测量温度,并以不同的调色板显示结果。以及如何实时计算视频流和UVC热像仪的每个像素温度。

qq_40985985的博客 6711

dToF直方图之美_deadtime死区时间

IMX459的死区时间可以在6ns,这个时间是什么级别,车载激光雷达激光器的光脉宽一般都在4ns以上,也就是这个时间贴近去SPAD的死区时间,这就导致了pile up会非常弱,不会有太多数量的光子计数堆积,加上某些SPAD设计,对TDC有一些更深入的考量,所以不需要去校正pile up算法。Sensor层面决定了pile up的复杂程度,如果一个dToF的SPAD一致性非常好,那么pile up校正可以简单到极致,也就是一句代码的事,比如IMX611,优秀到不需要后端去考虑校正pile up。

dream it possible 1433

CImageList使用指南

1.综述在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储。该控件是不可见的,通常与其它如CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl一起使用,为他们提供图标资源。图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的

梦想---软件设计师 7128

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

CImageList图标大小

CImageList* pImageList = new CImageList(); pImageList->Create(80,80,ILC_COLORDDB,10,1); ///////动态改变 ImageList_SetIconSize(pImageList->m_hImageList,30,30); ////////////////////////////////////

记事本 3603

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

通过CImageList加载图标 报错

错误代码: CImageList m_ProcessImg ;//全局变量 必须声明为全局变量(.h文件中),否则无效 HICON hSmallIco=AfxGetApp()->LoadIcon(IDI_ICON1); m_ProcessImg.Create(16,16, ILC_COLOR32 | ILC_MASK, 2, 2); m_Proc

六月心悸 1228

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

CImageList使用之CListCtrl中图标选中消失【转】

这两天在CListCtrl中显示图标时正常,但一选中一行该行图标就消失,设置所有state都没用,经朋友小狼帮忙,百度到下文(来自http://blog.chinaunix.net/u1/54412/showart_509957.html,谢谢作者)=======================================================代码如下:m_lstImg.Cr

CODER 沙漠孤狐 1822

CImageList

<br /><br />CImageList<br />百科名片<br />图像列表控制(CImageList )是相同大小图像的一个集合 ,每个集合中均以0 为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式 。可以利用WINDOWS32 位应用程序接口函数API 来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95 及以后版本才能实现。<br />数据成员<br />m_hImage

uda1985的专栏 1万+

VC程序使用CImageList类

首先在*.h头文件里面加入CImageList类的定义:CImageList m_ImgList;然后在类的实现里面试用下面的代码创建CImageList链表:m_ImgList.Create(16,16,ILC_COLOR24,11,0); m_ImgList.SetBkColor(RGB(255,255,255)); UINT nIconID[]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4,IDI_ICON5,IDI_ICON6,IDI_ICON7,IDI_IC

bitsjx的专栏 1万+

MFC CImageList序列图的用法

1.如何动态设置CImageList图标大小 CImageList* pImageList = new CImageList(); pImageList->Create(80,80,ILC_COLORDDB,10,1); //动态改变尺寸的方法如下: ImageList_SetIconSize(m_dlg->mCImageList.m_hImageList, mThumbWidth, mThumbHeight); mListCtrl.SetImageList(&mCImageL

wanvan的博客 988

CImageList使用指南 (转)

1.综述在MFC中CImageList类封装了图像列表控件的功能,图像列表是一个具有相同大小的图像(可以是不同类型)的集合,其主要用于应用程序中大规模图标的存储,该控件是不可见的。通常与其它如CListBox,CComboBox,CComboBoxEx以及CTabCtrl一起使用,为他们提供图标资源。图象的每个集合中均以0为图象索引基数,可以把这些图标看成是以数组方式存储的,图像列表通常由

liugy1126的专栏 1280
上一篇: 读取托盘栏图标对应进程ID
下一篇: dll加载失败,返回126错误
whatwhyhow
博客等级 码龄23年 5粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值