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

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

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
'-------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值