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

OPCUA二(通过OPCUA服务器访问CPU)

摘要:本文介绍了使用UaExpert软件连接西门子PLC的OPC UA配置方法,包括IP地址设置(默认端口4840)、安全认证和证书信任流程。详细说明了数据访问操作,如变量拖拽监控和属性解读(NodeId、Value、状态码等)。特别强调连接仿真Advance7时需先启动实例。最后预告下章将讲解通过KerServer访问CPU。文章涵盖配置步骤、常见问题处理及实用技巧,适合工业自动化开发者参考。

欢迎来到RaymondLeigh的知识共享基地 1335

SAP-ABAP:SAP ABAP 深度解析:BAPI 从入门到精通 —— 原理、实战与自定义开发全指南

SAP ABAP BAPI 深度解析摘要 本文全面介绍了 SAP ABAP 中的 BAPI(业务应用程序编程接口)技术,涵盖以下核心内容: BAPI 定义与特点:BAPI 是 SAP 为业务对象提供的标准化编程接口,具有面向对象、封装业务逻辑、标准化错误处理和版本兼容性等特点。 BAPI 与 RFC 关系:所有 BAPI 都是 RFC,但需额外满足业务对象注册、标准化参数和错误处理等要求。 BAPI 核心作用:包括业务逻辑封装、系统集成、标准化错误处理、版本兼容和审计合规。 实战演示:通过创建销售订单的完整

baidu_35680696的博客 1032

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

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

kindlucy的专栏 1135

YOLOv8独家原创改进:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1511

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

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

oldmtn的专栏 6445

使用Python爬虫获取Facebook帖子和评论数据

Web爬虫是用于自动抓取网页数据的程序。它通过发送HTTP请求,获取网页的HTML源代码,再对源代码进行解析,提取所需的内容。爬虫常用于数据收集、信息提取、数据分析等应用。

2201_76125261的博客 1998

*手把手教你学 Simulink——压缩机用永磁同步电机无位置传感器 I‑F 启动(Sensorless I/F Starting)控制仿真

dtdi^α​​zα​e^α​ω^θ^​=Ls​1​(−Rs​i^α​+usα​−zα​)=K⋅sign(i^α​−iα​)=zα​+Kpll​⋅(i^α​−iα​)同理 β=PLL(e^α​,e^β​)=∫ω^dt​。给定 Id​=Iset​, Iq​=f(θopen​)按设定 fstart​(t)Iq​=k⋅sin(θopen​)投影 → 恒幅 Is​=Id2​+Iq2​​。​ 将 Id​,Iq​→ Iα​,Iβ​→ SVPWM。Id​=Ialign​(弱对齐 → 防抖动)

amy_mhd的博客 38

列表框显示进程图标

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

倒计时 1724

SQL中的时间计算:员工每日工作时长

摘要:本文介绍了一个使用SQL查询计算员工每日工作时长的实用方法。通过分析包含员工打卡记录的数据库表,利用CTE(公共表表达式)将日期分组,计算最早和最晚打卡时间差,最终以"小时:分钟"格式输出工作时长。该方法适用于每日两次打卡的场景,并提示了处理漏打卡等特殊情况时的注意事项,为企业考勤管理提供了有效的数据支持方案。(148字)

m0_74337424的博客 411

CImagelist 基本用法

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

1108

YOLOv5改进 | 注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制,附二次创新)

本文给家大家带来的改进机制是iRMB,其是在论文Rethinking Mobile Block for Efficient Attention-based Models种提出,论文提出了一个新的主干网络EMO(后面我也会教大家如何使用该主干,本文先教大家使用该文中提出的注意力机制)。其主要思想是将轻量级的CNN架构与基于注意力的模型结构相结合(有点类似ACmix)我将iRMB和C2f结合,然后也将其用在了检测头种进行尝试三种结果进行对比,针对的作用也不相同,但是无论那种实验均有一定涨点效果。

Snu77的博客 2569

高温环境下(100℃以上)相机的几种保障方案

高温环境下相机保障措施摘要:针对120℃以上高温环境,相机需采取多重防护:1.散热设计采用金属机身、散热鳍片或风扇;2.关键部件选用耐高温材料(铝合金、特种玻璃);3.电子元件需军规级芯片并做三防处理;4.建议外接电源或耐高温电池。工业相机(如FLIR A655sc、Basler ace)及特种机型(Ximea xiQ)具备高温适应性,普通相机可加装隔热套件配合冷却系统。选择时需关注传感器信噪比和全局快门性能,并设置温度监控保护机制。注意高温会加速设备老化,需定期检测维护。(149字)

start_up_go的博客 1583

CImageList使用指南

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

梦想---软件设计师 7128

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

CImageList图标大小

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

记事本 3603

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

通过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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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、付费专栏及课程。

余额充值