编程获取图标一法

深入掌握如何获取Windows文件系统图标 本文还有配套的精品资源,点击获取 简介:在Windows操作系统中,文件系统图标用于图形化表示文件、文件夹或驱动器。这些图标可以动态加载并在用户界面元素如资源管理器、桌面快捷方式中显示。文章将探讨如何编程获取这些图标,特别通过动态加载系统文件目录并获取系统文件夹图标的方法。介绍关键的Windows API函数如SHGetFileInfo、SHFILEINFO、LoadIco... 阅读详情
在程序中,当需要获得其他程序的图标时,我们可以首先调用SDK函数 SHGetFileInfo获得应用程序的有关信息 ,并利用得到的hIcon句柄实现图标显示。

  例如,如果需要在程序窗口左上角显示写字板图标(见图1),可以在相应视类的OnDraw中增加以下代码:

  void CSampleView: OnDraw(CDC  pDC)

  {

  //获得图标信息

  if( :: SHGetFileInfo(_T(C://Program Files//Accessories//wordpad.exe"),0,

  &&stFileInfo,sizeof(stFileInfo),SHGFI_ICON))

  {

   //利用设备描述表的DrawIcon接口显示得到的图标信息

  pDC ->DrawIcon(10,10,stFileInfo.hIcon);

  }

  }

   另外也可以调用 ExtractIcon函数获得应用程序的图标信息,同样调用设备描述表的DrawIcon函数完成图标显示。

  void CSampleView:: OnDraw(CDC pDC)

  {

  HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T

  ("C://Program Files//Accessories//wordpad.exe"),0);

  if (hIcon &&&&hIcon!=(HICON)-1)

  pDC->DrawIcon(10,10,hIcon);

  }
掌握C#获取系统默认图标的方法 P/Invoke(Platform Invocation Services)是C#中的一种机制,允许程序员从托管代码调用非托管函数,即那些用C或C++等语言编写的本地代码函数。这一特性对于需要调用操作系统底层API、旧有库或硬件设备接口的场景尤为重要。P/Invoke的优势在于,它能够为开发者提供访问底层系统服务的能力,尤其是在.NET框架本身不提供直接支持的场景下。通过P/Invoke,开发者可以不必重新发明轮子,直接利用现有的、经过验证的本地代码库。 阅读详情

相关推荐

全面解析编程中图标资源的应用与实践

htmltable {th, td {th {pre {简介:图标资源对于软件开发和用户界面设计至关重要,它不仅帮助用户识别功能和导航,还能够提升软件的视觉吸引力。本简介详细介绍了图标的作用、类型、设计原则、文件命名规则以及编程中的使用和集成方法。同时,还涵盖了图标管理和版权问题,为开发者提供了全面的图标资源应用指南,帮助他们根据项目需求选择和管理图标集,提高产品的整体质量。

weixin_29903713的博客 1044

C# 获取Windows系统ICON图标的四种方式-可提取各种文件夹、文件等等图标

本文介绍的是提取Windows系统内部Icon图标的方法,就是系统资源管理器里面显示的图标,包括文件夹、文件,如:常规文件夹的图标、特定文件夹图标(磁盘根目录、收藏夹、网络共享目录等)、各文件类型图标、应用程序文件图标。 方法一:调用.NET内部提供的ExtractAssociatedIcon方法,只能从文件获取一种规格的ICON图标,一般是Size(32,32) public static System.Drawing.Icon GetIconFromFile(string fileName) {

lzl_li的专栏 1万+

ExtractIcon

图标提取器

c# 动态获取系统图标

<br /><br />using System;<br />using System.Collections.Generic;<br />using System.Text;<br />using System.Runtime.InteropServices;<br />using System.Drawing;<br /> <br /> <br />namespace Common<br />{<br />    /// <summary><br />    /// 获取系统默认的图标<br />  

yanchao1023的专栏 1311

ExtractIcon 图标提取

软件图标快速提取,绿色单文件版,不用安装直接使用。

近2000个图标,编程必备

近2000个bmp与png类型的图标,编程必备。 32x32, 24x24, 16x16的各种图标。

获取程序大图标方案

获取文件的图标 在win7的文件状态栏中能显示最大256x256的程序应用图标。 在XP下测试无法正常获取256的巨型图标 Shell提供了一个函数 SHGetFileInfo 可以获取文件信息,在使用此函数有需要处理Icon句柄的释放(DestroyIcon),否则每次会有3个GDI句柄泄漏问题。 使用此函数后会一次性产生47个GDI句柄,只要Icon句柄释放,就不会再增长。现...

weixin_30678821的博客 336

软件编程常用图标

软件编程常用图标 文件较大,请从网盘下载

获取系统图标

一点不足,文件夹图标是从shell32.dll中得到的.一般情况下是没有问题的.但是当文件夹的图片时自定义的时候就无法得到了.继续研究中 using System; using System.IO; using System.Drawing; using Microsoft.Win32; using System.Runtime.InteropServices;

hrbeuwhw的专栏 995

ExtractIcon 导出系统图标

ExtractIcon 导出系统图标 /// <summary> /// 依据文件名读取图标,若指定文件不存在,则返回空值。 /// </summary> /// <param name="fileName">文件路径</param> /// <param name="isLarge">是否返回大图标</param> /// <returns></returns> public static Icon GetIconByFileName(string fileName, bool isLarge = true) { int[] phiconLarge = new int[1]; int[] phiconSmall = new int[1]; //文件名 图标索引 Win32.ExtractIconEx(fileName, 0, phiconLarge, phiconSmall, 1); IntPtr IconHnd = new IntPtr(isLarge ? phiconLarge[0] : phiconSmall[0]); return Icon.FromHandle(IconHnd); }

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 359

编程获取图标一法 (转)

编程获取图标一法 (转)[@more@]编程获取图标一法苏金国(2000-09-24)   在程序中,当需要获得其他程序的图标时,我们可以首先调用SDK函数 SHGetFileInfo获得应用程序的有关信息 ,并利用得到的hIc...

circularr9834的博客 143

STM32Cubemx-H7-17-麦克纳姆轮驱动

我们先看.h,知道哪些函数会有哪些功能和宏定义参数首先 是在.h的宏定义处定义引脚编号,比如tb6612控制方向的引脚,以及设定了哪个定时器作为pwm输出,还有编码计次的中断引脚/* 硬件相关宏定义 *//*1 前进方向往上 42 3*/// TB6612 方向引脚定义/* 定时器相关宏定义 *//* 编码器相关宏定义 */把自己的引脚根据原理图填对应,方向引脚也是,如果发现反转就把对应的引脚定义反过来,编码也是,编码我们用一个引脚就好,都在cubemx配置好。

m0_74211379的博客 1423

怎样获取系统图标

---- 大量的图标显示是Windows中的一大特色,丰富多彩的图标不仅美化了Windows的桌面,而且便于直观的操作,给用户带来了极大的方便。可以说在某种程度上,图标的地位已经超过了文件名的作用。 ---- 但是,当我们用可视化编程工具进行Windows编程时,却很少有方便的方法来加载和显示图标。一般来说,在我们的应用程序中使用到图标资源时都是我们自己亲自绘制出来的。因此,在我们编的程序中

fyl_077的专栏 1018

Elasticsearch 8.17.1 JAVA工具类

整理了Elasticsearch8.17最新版的API工具类

weixin_39555954的博客 1127

MATLAB双目相机标定:从工具箱实战到参数精解

本文详细讲解了使用MATLAB进行双目相机标定的完整实战流程与参数精解。从拍摄合格的棋盘格图像、设置关键参数(如径向畸变系数),到分析重投影误差、优化结果并正确导出和使用内外参,提供了从操作到原理的全面指导,帮助读者为立体视觉应用奠定精准基础。

weixin_29041767的博客 264

C# 获取桌面文件图标名字等信息(大小图标的设置)

在添加下面之前请先在设计界面添加listView string desktoppath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); //这个是调用系统环境获取桌面的路径 DirectoryInfo desktopDir = new DirectoryInfo(desktoppath); //这个类...

GodGump的博客 2415

UFS 3.1协议分析(第一至四章) -- UFS概述

Contents协议规范规范参考术语和定义简单概述通用特性接口特性功能特性 协议规范     UFS3.1协议规定了UFS电气接口和存储器件的特性以及系统架构。 特性:低功耗、高数据吞吐量、低电磁干扰、大容量存储器子系统效率的优化 电气接口:使用基于MIPI M-PHY的高级差分接口;M-PHY作为物理层,MIPI UniPro作为链路层,二者结合形成UFS接口的互联。 架构模型:参考 INCITS T10(SCSI) SAM 标准,命令协议基于 INCITS T1

Frank_sample的专栏 1万+

在VC++应用程序中获取其他程序图标的实现方法

大家知道何为图标吗?其实图标就是具有明确指代含义的计算机图形。其中桌面图标是软件标识,界面中的图标是功能标识。它源自于生活中的各种图形标识,是计算机应用图形化的重要组成部分。今天小编要为大家介绍的一篇教程就是:在VC++应用程序中获取其他程序图标的实现方法。   那么我们应该怎样在VC++应用程序中获取其他程序图标?经过小编在网上搜索资料,总结出来了一下两种实现方法,大家不妨可以尝试

zyj66666的博客 2382

量化人必看|miniQMT踩坑记:回测太慢?一招教你把行情数据“搬回家”!

这篇文章主要聊的是。

奔跑的蜗牛 3481

YOLOv10改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤

本文记录的是。采用深度可分离卷积将标准卷积分解为深度卷积和1×1卷积。同时,引入来,避免非线性层导致的性能下降问题。本文将应用到YOLOv10中,借助其高效的结构和特性,在保持一定精度的前提下,显著降低YOLOv10的计算复杂度和内存占用。

Limiiiing的博客 533
上一篇: 突破C++的虚拟指针--C++程序的缓冲区溢出攻击
下一篇: 在 CTreeCtrl 中枚举系统中的所有窗口!(I)
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值