UINT ExtractIconEx(
  LPCTSTR lpszFile,          
  int nIconIndex,           
  HICON FAR *phiconLarge,  
  HICON FAR *phiconSmall,  
  UINT nIcons               
);
see msdn

解决方案 »

  1.   

    orHICON ExtractIcon(
      HINSTANCE hInst,          // instance handle
      LPCTSTR lpszExeFileName,  // filename of file with icon
      UINT nIconIndex           // index of icon to extract
    );
     
      

  2.   

    我这里有个源代码,来信要
    http://www.wzjcw.net/vbgood/taishan/index.html
      

  3.   

    到http://caotang.myetang.com/temp/extracticon.dll下载一个给你满意答复的例子
      

  4.   

    正好我做了一个
    此处下载原代码http://507www.go.163.com/file/tqtb.zip
    绝对好看易懂
      

  5.   

    如何在VB中用API获得EXE文件图标并显示在Picture控件里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.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
    Private Sub Command1_Click()
    Dim total As Long
    Dim p(50) As Long
    Dim i As Integer
    Me.Picture1.Cls
    Me.CommonDialog1.Filter = "图标|*.Exe;*.Ico;*.Dll"
    Me.CommonDialog1.ShowOpen
    If Dir(Me.CommonDialog1.filename) <> "" Then
    If ExtractIcon(App.hInstance, Me.CommonDialog1.filename, -1) = 0 Then '如果没有图标
    MsgBox "No Icon!"
    Else
    total = ExtractIcon(App.hInstance, Me.CommonDialog1.filename, -1)
    '取得总图标数
    For i = 0 To total - 1
    p(i) = ExtractIcon(App.hInstance, Me.CommonDialog1.filename, i) '读取每个图标
    Next i
    For i = 0 To total - 1 '依次显示每个图标
    DrawIcon Picture1.hdc, 34 * i, 0, p(i)
    Next i
    End If
    End If
    End Sub