今天网上有人问到这个,随便给解释了下,具体请看:

http://community.csdn.net/Expert/topic/3417/3417578.xml?temp=.30534

我出的源程序:

新建一个工程,在窗体上加上两个Label: Label1和Label2;以及一个VScroll1和Picture1
示例源代码如下:

Option Explicit

Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib "shell32" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

'这个路径根据你的系统改变
Private Const sIconFile As String = "c:/winnt/system32/User32.dll"

Private Sub Form_Load()
   Dim hIcon As Long
   Dim nIconCount As Long
   nIconCount = ExtractIcon(0&, sIconFile, -1)
   If nIconCount > 0 Then
      VScroll1.Min = 0
      VScroll1.Max = nIconCount - 1
      VScroll1.Value = 0
      Label1.Caption = nIconCount & " 个图标"
      Call VScroll1_Change
   End If
End Sub

Private Sub VScroll1_Change()
   Dim index As Long
   Dim hIcon As Long
   index = VScroll1.Value
   If index <= VScroll1.Max Then
      Picture1.Cls
      hIcon = ExtractIcon(0&, sIconFile, index)
      Call DrawIcon(Picture1.hdc, 0, 0, hIcon)
      Call DestroyIcon(hIcon)
      Label2.Caption = "序号: " & index
   End If
End Sub

Private Sub VScroll1_Scroll()
   Dim index As Long
   Dim hIcon As Long
   index = VScroll1.Value
   If index <= VScroll1.Max Then
      Picture1.Cls
      hIcon = ExtractIcon(0&, sIconFile, index)
      Call DrawIcon(Picture1.hdc, 0, 0, hIcon)
      Call DestroyIcon(hIcon)
      Label2.Caption = "序号: " & index
   End If
End Sub

'-------------------------------------------
' 转载请注明出处
' 作者:唐细刚
' 邮箱:tanaya@163.com
'-------------------------------------------

转载于:https://www.cnblogs.com/it201108/archive/2004/09/29/2148522.html

如何获取exe,dll中的图标以及源程序相关推荐

  1. 如何从Windows EXE文件中提取图标

    Sometimes you're working on a project and need access to a high-quality version of a Windows 10 appl ...

  2. 使用Dependency Walkers来检查exe文件中缺少的dll

    在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字--动态链接库.现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录, ...

  3. Windows守护进程实现/设置程序图标/隐藏黑窗/获取exe所在目录/设置开机自启动

    功能:实现一个windows守护进程,设置有自定义图标,启动后隐藏黑窗口,获取exe所在目录,并设置开机自启动(需要以管理员权限运行).如果需要打包成可执行的安装包程序,见另一篇博客:https:// ...

  4. AutoCAD.NET 不使用P/Invoke方式调用acad.exe或accore.dll中的接口(如acedCommand、acedPostCommand等)...

    使用C#进行AutoCAD二次开发,有时候由于C#接口不够完善,或者低版本AutoCAD中的接口缺少,有些工作不能直接通过C#接口来实现,所以需要通过P/Invoke的方式调用AutoCAD的其他DL ...

  5. 在EXE和DLL中,FindResource的区别

    以下的代码在EXE中,执行无误.可是在DLL中FindResource返回的值就为0了,我用::GetLastError(),得出的值是1813,也就是取不到资源,这是为什么? BOOL Extrac ...

  6. 用实例证明dll中new的内存不能在exe中释放

    VC中新建一个dll工程,设置使用"多线程调试DLL (/MDd)".该dll导出以下alloc函数: [cpp] view plaincopy __declspec( dllex ...

  7. 获取动态库中Windows API的地址(以ntdll.dll为例子)

    一.任务 打印Windows 2003中ntdll.dll的所有函数名及其地址. 二.流程 1.获取ntdll.dll的基址 (1)汇编代码 unsigned long addr;__asm{mov ...

  8. Qt中按钮图标的设置、按钮按下时浮动效果设置 以及 QT的EXE程序图标设置

    本文内容皆为Qt 5.13版本. 使用 IDE为 QTCreator.若是 VS+QT插件环境则可能有略微差异. 推荐一个不错的图标网站,大部分资源都可以免费下载: https://www.easyi ...

  9. C++ Builder创建和调用dll中的资源

    程序开发中经常会用到一些图标.图片.光标.声音等,我们称它们为资源(Resource).当多个窗口用到同样的资源时,可以将这些公共的资源放到一个dll文件里调用,这样,由于定位资源比在磁盘中定位文件花 ...

最新文章

  1. ppt流程图字体太小_关于答辩PPT的制作技巧
  2. reactjs redux异步action
  3. Python小知识 | 这些技能你不会?(一)
  4. 【word基础知识】在word指定页开始设置页码/页眉
  5. java让两个线程交替_java两个线程实现: 两个线程交替打印字母和数
  6. win2016开启ntp_Windows服务器开启NTP服务
  7. P1059 明明的随机数(C/C++)
  8. MockServer 服务框架设计
  9. 运营商iptv服务器,IPTV 服务器
  10. 萌言萌语|测试工作日报及总结
  11. 关于用户注册登录的问题
  12. [WTL/ATL]_[初级]_[微调控件CUpDownCtrl的使用]
  13. Python之字符串源码解析
  14. 自己留着用的 .net 图片水印 方法
  15. java基础 马士兵_马士兵java零基础
  16. 在知网下载时只能caj,不能pdf
  17. Mac OS -- ORSSerialPort打开serialPort时提示错误Operation not permitted
  18. end=强制打印成一行;\t拉大列间距_xing2516_新浪博客
  19. 中国医科大学《护理研究(本科)》在线作业
  20. 【NLP文本分类】对IMDB电影评论进行情感分析

热门文章

  1. 遇到一个Linux文件系统因bios时间错误变成只读的问题
  2. 【java】Java -jar 运行的程序如何 本地代码远程调试服务器程序
  3. 【kafka】kafka Producer Metadata概述及源码分析
  4. 【Elasticsearch】Elasticsearch的数据类型 (text、keyword、date、object、geo等)
  5. 【docker】docker Portainer容器可视化管理工具使用文档
  6. 【Kafka】kafka zk下注册的信息 get /brokers/ids/1 “host“:null “port“:-1
  7. SQL解析利器General SQL Parser
  8. 60-150-044-使用-Sink-Flink自定义RetractStreamTableSink
  9. 【Janino】Janino介绍
  10. Spring : Spring的ApplicationContext接口