วิธีการใช้ฟังก์ชัน SHGetFileInfo เพื่อเรียกดูไอคอนที่เกี่ยวข้องกับแฟ้มใน Visual Basic .NET

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 319340 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับรุ่น Microsoft Visual c# .NET ของบทความนี้ ดู319350.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีใช้นี้SHGetFileInfoฟังก์ชันการเรียกใช้ไอคอนที่เกี่ยวข้องกับแฟ้ม

สร้างโปรแกรมประยุกต์ Windows Forms

  1. เริ่ม Microsoft Visual Studio .NET
  2. ในการแฟ้ม:เมนู ให้ชี้ไปที่ใหม่แล้ว คลิกProject.
  3. ในการโครงการใหม่กล่องโต้ตอบ คลิกโครงการ visual Basicภายใต้ชนิดโครงการแล้ว คลิกแอพลิเคชันของ windowsภายใต้แม่แบบ.
  4. ในการชื่อ:กล่อง ชนิดGetIconSample.

ใช้ฟังก์ชัน SHGetFileInfo

  1. เพิ่มรหัสต่อไปนี้ในตอนต้นของแฟ้ม Form1.vb
    Imports System.Runtime.InteropServices
    					
  2. เพิ่มรหัสต่อไปนี้ในการform1คลาสหลังจากสืบทอดคำสั่ง
    Private Structure SHFILEINFO
            Public hIcon As IntPtr ' : icon
            Public iIcon As Integer ' : icondex
            Public dwAttributes As Integer ' : SFGAO_ flags
            <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _
            Public szDisplayName As String
            <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _
            Public szTypeName As String
    End Structure
    
    Private Declare Ansi Function SHGetFileInfo Lib "shell32.dll" (ByVal pszPath As String, _
    ByVal dwFileAttributes As Integer, ByRef psfi As SHFILEINFO, ByVal cbFileInfo As Integer, _
    ByVal uFlags As Integer) As IntPtr
    
    Private Const SHGFI_ICON = &H100
    Private Const SHGFI_SMALLICON = &H1
    Private Const SHGFI_LARGEICON = &H0         ' Large icon
    Private nIndex = 0
    					
  3. เพิ่มคำlistViewตัวควบคุม คำปุ่มตัวควบคุม และเพิ่มimageListควบคุมไปยังแบบฟอร์ม ชื่อเริ่มต้นคือ ListView1, Button1 และ ImageList1 ตามลำดับ
  4. ในหน้าต่างคุณสมบัติของbutton1ตั้งค่าปุ่มข้อความเลือกแฟ้มแล้ว เพิ่มโค้ดต่อไปนี้ในการButton1_clickเหตุการณ์:
    Dim hImgSmall As IntPtr  'The handle to the system image list.
    Dim hImgLarge As IntPtr  'The handle to the system image list.
    Dim fName As String      'The file name to get the icon from.
    Dim shinfo As SHFILEINFO
    shinfo = New SHFILEINFO()
    Dim openFileDialog1 As OpenFileDialog
    openFileDialog1 = New OpenFileDialog()
    
    openFileDialog1.InitialDirectory = "c:\temp\"
    openFileDialog1.Filter = "All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True
    
    listView1.SmallImageList = imageList1
    listView1.LargeImageList = ImageList1
    
    shinfo.szDisplayName = New String(Chr(0), 260)
    shinfo.szTypeName = New String(Chr(0), 80)
    
    If (openFileDialog1.ShowDialog() = DialogResult.OK) Then
         fName = openFileDialog1.FileName
    
         'Use this to get the small icon.
         hImgSmall = SHGetFileInfo(fName, 0, shinfo, Marshal.SizeOf(shinfo), _
             SHGFI_ICON Or SHGFI_SMALLICON)
    
         'Use this to get the large icon.
         'hImgLarge = SHGetFileInfo(fName, 0, 
         'ref shinfo, (uint)Marshal.SizeOf(shinfo), 
         'SHGFI_ICON | SHGFI_LARGEICON);
    
         'The icon is returned in the hIcon member of the shinfo struct.
         Dim myIcon As System.Drawing.Icon
         myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon)
    
         imageList1.Images.Add(myIcon) 'Add icon to imageList.
    
         listView1.Items.Add(fName, nIndex) 'Add file name and icon to listview.
         nIndex = nIndex + 1
    End If
    					

เรียกใช้โครงการนี้

  1. การคอมไพล์โครงการ: บนการสร้างเมนู คลิกสร้างโซลูชัน.
  2. กดแป้น F5 เพื่อเรียกใช้โครงการ
  3. คลิกเลือกแฟ้มจากนั้น เลือกแฟ้มในนั้นOPENกล่องโต้ตอบ ชื่อของแฟ้มและไอคอนที่เกี่ยวข้องกับแฟ้มปรากฏขึ้นในการListViewตัวควบคุม

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมในบทความนี้รุ่น Microsoft Visual c# .NET คลิกหมายเลขบทความด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
319350วิธีการใช้ฟังก์ชัน SHGetFileInfo ไปยังการเรียกดูไอคอนที่เกี่ยวข้องกับแฟ้มใน Visual .NET c#

คุณสมบัติ

หมายเลขบทความ (Article ID): 319340 - รีวิวครั้งสุดท้าย: 13 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
Keywords: 
kbhowtomaster kbmt KB319340 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:319340

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com