Visual Basic. NET'te dosyalarla ilişkili simgelerin almak için SHGetFileInfo işlevi nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 319340 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalenin Microsoft Visual C# .NET sürümü için bkz: 319350.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, SHGetFileInfo işlevi dosyalarla ilişkili simgelerin almak için nasıl kullanılacağını açıklar.

Windows Forms uygulaması oluşturma

  1. Microsoft Visual Studio .NET'i başlatın.
  2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
  3. Yeni proje) iletişim kutusunda, Visual Basic ProjectsProject Types altında tıklatın ve şablonları altında Windows uygulama ' yı tıklatın.
  4. Ad kutusuna GetIconSample yazın.

SHGetFileInfo işlevini kullanın.

  1. Form1.vb dosyanın başına aşağıdaki kodu ekleyin.
    Imports System.Runtime.InteropServices
    					
  2. Aşağıdaki kodu Form1 sınıfında INHERITS deyiminin sonrasına ekleyin.
    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. Bir liste görünümü denetimi, bir Düğme denetimi ve bir imageList denetimi forma ekleyin. Varsayılan ListView1 Button1 ve ImageList1 sırasıyla adlarıdır.
  4. Button1 Properties penceresinde, bir dosya seç düğmesinin metni ayarlayın ve sonra da Button1_click olayda aşağıdaki kodu ekleyin:
    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
    					

Projeyi çalıştırın

  1. Projeyi derlemek: Oluştur) menüsünde, Build Solution ' ı tıklatın.
  2. F5 tuşuna basarak projeyi çalıştırın.
  3. Bir dosya seç ' i tıklatın ve sonra da iletişim kutusuna bir dosya seçin. Adı ve dosya ile ilişkilendirilmiş simgeyi ListView denetiminde görünür.

Referanslar

Bu makalenin Microsoft Visual C# .NET sürümünde ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
319350Simgeleri dosyalar Visual C# .NET ile ilişkili olarak mı almak için SHGetFileInfo işlevi nasıl kullanılır

Özellikler

Makale numarası: 319340 - Last Review: 6 Temmuz 2004 Salı - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbmt kbhowtomaster KB319340 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:319340

Geri Bildirim Ver

 

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