Τρόπος χρήσης της συνάρτησης SHGetFileInfo για να λάβετε τα εικονίδια που σχετίζονται με αρχεία σε Visual Basic .NET

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:319340
Αυτό το αρχείο έχει αρχειοθετηθεί. Προσφέρεται “ως έχει” και δεν θα ενημερώνεται πια.
Για την έκδοση Microsoft Visual C# .NET αυτού του άρθρου, ανατρέξτε στην ενότητα319350.
Περίληψη
Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο χρήσης τουSHGetFileInfoλειτουργία για να εμφανιστούν τα εικονίδια που σχετίζονται με τα αρχεία.

back to the top

Δημιουργία μιας εφαρμογής Windows Forms

  1. Ξεκινήστε το Microsoft Visual Studio .NET.
  2. Στο διακομιστήFILEμενού, σημείοΝέα, και στη συνέχεια κάντε κλικ στο κουμπίΤο έργο.
  3. ΣτοΝέο έργοπαράθυρο διαλόγου, κάντε κλικ στο κουμπίΈργα της Visual BasicunderΤύποι έργου, και στη συνέχεια κάντε κλικ στο κουμπίΕφαρμογή των WindowsunderΠρότυπα.
  4. ΣτοNAMEπληκτρολογήστεGetIconSample.
back to the top

Χρησιμοποιήστε τη συνάρτηση SHGetFileInfo

  1. Προσθέστε τον ακόλουθο κώδικα στην αρχή του αρχείου Form1.vb.
    Imports System.Runtime.InteropServices					
  2. Προσθέστε τον ακόλουθο κώδικα στο στοΦόρμα1κλάση μετά τηνΓΊΝΕΤΑΙ ΜΕΤΑΒΊΒΑΣΗπρόταση.
    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 StringEnd StructurePrivate 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 IntPtrPrivate Const SHGFI_ICON = &H100Private Const SHGFI_SMALLICON = &H1Private Const SHGFI_LARGEICON = &H0         ' Large iconPrivate 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 SHFILEINFOshinfo = New SHFILEINFO()Dim openFileDialog1 As OpenFileDialogopenFileDialog1 = New OpenFileDialog()openFileDialog1.InitialDirectory = "c:\temp\"openFileDialog1.Filter = "All files (*.*)|*.*"openFileDialog1.FilterIndex = 2openFileDialog1.RestoreDirectory = TruelistView1.SmallImageList = imageList1listView1.LargeImageList = ImageList1shinfo.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 + 1End If					
back to the top

Εκτελέστε το έργο

  1. Μεταγλωττίστε το έργο: από τοΔημιουργίαμενού, κάντε κλικ στο κουμπίΔημιουργία λύσεων.
  2. Πατήστε F5 για να εκτελέσετε το έργο.
  3. Κάντε κλικΕπιλέξτε ένα αρχείο, και στη συνέχεια επιλέξτε ένα αρχείο με τοOpenπαράθυρο διαλόγου. Το όνομα του αρχείου και του εικονιδίου που συσχετίζεται με το αρχείο εμφανίζεται στο στοΠροβολή λίσταςControl.
back to the top
Αναφορές
Για πρόσθετες πληροφορίες σε Microsoft Visual C# .NET έκδοση αυτού του άρθρου, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
319350Τρόπος χρήσης της συνάρτησης SHGetFileInfo για αντιγραφή του εικονιδίων που είναι συσχετισμένο με αρχεία στο Visual C# .NET
back to the top

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 319340 - Τελευταία αναθεώρηση: 12/07/2015 09:15:40 - Αναθεώρηση: 2.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

  • kbnosurvey kbarchive kbhowtomaster kbmt KB319340 KbMtel
Σχόλια