首页 > 系统相关 >Windows编程:获取系统图标

Windows编程:获取系统图标

时间:2023-08-28 14:23:07浏览次数:48  
标签:SHGSI SHSTOCKICONINFO Windows 函数 编程 图标 SHGetStockIconInfo ICON

使用SHGetStockIconInfo函数可以获取系统定义的 Shell 图标的信息

 

SHGetStockIconInfo函数定义如下:

1 SHSTDAPI SHGetStockIconInfo(
2             SHSTOCKICONID   siid,
3             UINT            uFlags,
4   [in, out] SHSTOCKICONINFO *psii
5 );

 

SHSTOCKICONID siidSHSTOCKICONID 枚举中的值之一,指定应检索哪个图标

UINT  uFlags:以下零个或多个标志的组合,这些标志指定请求的信息

 

标志 说明
SHGSI_ICONLOCATION SHSTOCKICONINFO 结构的 szPath 和 iIcon 成员采用适合传递给 ExtractIcon 函数的格式接收所请求图标的路径和图标索引。 此标志的数值为零,因此无论其他标志如何,你始终都会获得图标位置。
SHGSI_ICON SHSTOCKICONINFO 结构的 hIcon 成员接收指定图标的句柄
SHGSI_SYSICONINDEX SHSTOCKICONINFO 结构的 iSysImageImage 成员接收系统映像列表中指定图标的索引
SHGSI_LINKOVERLAY 通过使函数将链接覆盖添加到文件图标来修改SHGSI_ICON值
SHGSI_SELECTED 通过使函数将图标与系统突出显示颜色混合来修改SHGSI_ICON值
SHGSI_LARGEICON 修改SHGSI_ICON值,方法是使函数检索由SM_CXICON和SM_CYICON系统指标指定的大型图标版本
SHGSI_SMALLICON 修改SHGSI_ICON值,方法是使函数检索由SM_CXSMICON指定的小版本图标,并SM_CYSMICON系统指标
SHGSI_SHELLICONSIZE 修改SHGSI_LARGEICON或SHGSI_SMALLICON值,方法是使函数检索 Shell 大小的图标,而不是系统指标指定的大小

 

SHSTOCKICONINFO *psii:指向SHSTOCKICONINFO 结构的指针。

注意:调用此函数时,需要将此结构的 cbSize 成员设置为 SHSTOCKICONINFO 结构的大小。

 

示例:获取UAC盾牌的图标

1     SHSTOCKICONINFO info{};
2     info.cbSize = sizeof(SHSTOCKICONINFO);
3     auto hr = SHGetStockIconInfo(SIID_SHIELD, SHGSI_ICON | SHGSI_LARGEICON, &info);

 

 

参考资料:

SHGetStockIconInfo函数

https://learn.microsoft.com/zh-cn/windows/win32/api/shellapi/nf-shellapi-shgetstockiconinfo

标签:SHGSI,SHSTOCKICONINFO,Windows,函数,编程,图标,SHGetStockIconInfo,ICON
From: https://www.cnblogs.com/zhaotianff/p/17662167.html

相关文章

  • Parallels Desktop 19 for Mac 发布, 简化 macOS 和 Windows 交互
    ParallelsDesktop19forMac发布,简化macOS和Windows交互ParallelsDesktop19BusinessEdition请访问原文链接:https://sysin.org/blog/parallels-desktop-19/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgAugust21,2023Mac爱好者大家好,这是多么令......
  • CrossOver 23.0 for Mac:在 macOS 上运行 Windows 应用
    CrossOver23.0forMac:在macOS上运行Windows应用请访问原文链接:https://sysin.org/blog/crossover-23/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCrossOver:在macOS、Linux和ChromeOS上运行您的Windows®应用对比所有跨平台方案对比内容CrossOv......
  • VMware Tools 12.2.6 - 修复 SRM 无法对 Windows 虚拟机执行 IP 自定义的问题
    VMwareTools12.2.6请访问原文链接:https://sysin.org/blog/vmware-tools-12/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org简介VMwareTools中包含一系列服务和组件,可在各种VMware产品中实现多种功能,从而使用户能够更好地管理客户机操作系统,以及与客户机操作系......
  • Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转
    场景开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130136245上面讲了ZLMediaKit的使用流程。下面介绍另一种开源流媒体服务器。Monibucahttps://m7s.......
  • Windows实时绘图:2D绘图和3D绘图所用的API有何不同?
    3D绘图众所周知的有OpenGL、WebGL等。2D绘图有GDI、GDI+。它们在进行数据渲染方面有何区别?2D图形渲染不需要3D渲染上的一些坐标转换,但是二维转换还是要的。进行渲染时,也要有渲染管线->生成图片。ArcMap绘图用的是哪个图形接口?QGIS用的是哪个图形接口?GeoTools渲染地图时又是......
  • 修复被Win7 BUG遗失的EXE图标
    不少使用Win7的用户都会遇到软件装完后,很多EXE文件的图标丢失,变成无法识别的文件图标。虽然不影响功能的正常使用,但是看起来却并不舒服。造成这个现象的原因是图标缓存出错,这是Win7存在的一个小BUG,我们可以通过命令提示符来解决。输入cmd打开命令提示符,依次输入下列命令:taskkill......
  • Windows 查看句柄占用情况
    Windows查看句柄占用情况的工具有哪些呢?很多时候我们定位问题都涉及到文件本占用的情况,然而我们又无法确定到底是哪个进程占用了这个文件。下面我们来推荐查看句柄占用的两种方法:1.系统工具resmon.exe支持搜索,比如查看AS-30450368-220823-1537-4772.pdf这个文件被谁打开了a......
  • 5个前端开源项目带你在Web上体验Windows
    本文来分享五个yyds的开源项目,这些项目把Windows带到了Web平台上。让我们一起感受这些项目带来的回忆和创新,重温Windows93、98、XP和7的经典界面,甚至探索现代概念中的Windows11和12!Windows12使用JavaScript、CSS、HTML等技术开发的网页版Windows12,且支持深......
  • 1-5可编程定时器/计数器 8253 实验
    EXTRNInitKeyDisplay:NEAR,Display8A:NEARIO8259_0EQU0250HIO8259_1EQU0251HCOM_ADDREQU0263HT2_ADDREQU0262H_STACKSEGMENTSTACKDW100DUP(?)_STACKENDS_DATASEGMENTWORDPUBLIC'DATA'BUFFERDB8DUP(?)CounterDB?ReDisplayFlagDB......
  • 在windows和Linux系统之间配置共享目录(使用samba工具)
    安装samba工具aptinstallsamba编辑vim/etc/samba/smb.conf文件底部添加配置信息:[code]path=/code #指定共享目录writeable=yes #可写browseable=yes #可预览guestok=yes #不登录可访问先关闭之前进程pkillsmbd,重新启动smbd,psaux|grepsmbd检查新启......