Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

GetFileIconHandle!

Îåêßíçóå áðü ôï ìÝëïò tommaσ. Τελευταία δημοσίευση από το μέλος imanos στις 08-05-2006, 15:03. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-03-2006, 23:21 10371

    Sleep [|-)] GetFileIconHandle!

       να και κάτι δύσκολο ....

                      έχω φτιάξει ενa πρόγραμμα που περνάει τα Directory και τα File σε 2 ListView σε vb2005   

    το πρόβλημα είναι ότι θέλω στο ListView με τα File να εμφανιζei τα icon που έχουν και ston brower των windowsBig Smile [:D]

    βρήκα έναν αντίστοιχο σε c# αλλά εκτός ότι δεν κατάλαβα “Xρηστο”:P το θέλω σε vb2005 

                                  καμιά ιδέα? Idea [I]ψαχνό 8:30 ώρες με το ρολόι!

     

  •  06-03-2006, 19:26 10375 σε απάντηση της 10371

    Απ: GetFileIconHandle!

    Κάπου έχει γράψει ο SValsamis, αυτό ακριβώς που χρειάζεσαι.. ψάξε λίγο στο forum..
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  06-03-2006, 19:52 10377 σε απάντηση της 10375

    Απ: GetFileIconHandle!

  •  07-03-2006, 14:56 10420 σε απάντηση της 10371

    Απ: GetFileIconHandle!

    Δεν θα ήταν πιο εύκολο αν είχες μεταφράσει τον κώδικα C# σε VB.NET? Δεν διαφέρουν τόσο πολύ οι δύο γλώσσες
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-03-2006, 14:59 10421 σε απάντηση της 10420

    Απ: GetFileIconHandle!

    θα το κοιταξω!!!! αυριο "ΔΙΑΒΑΣΜΑ ΒΛΕΠΕΙΣ!"
  •  08-05-2006, 15:03 12388 σε απάντηση της 10371

    Απ: GetFileIconHandle!

    Σέ VB6 είχα χρειαστεί το ίδιο πράγμα και έφτιαξα το παραπάκτω module.

    Πραγματοποιείται μέ την χρήση API

    Private Type SHFILEINFO
        hIcon As Long
        iIcon As Long
        dwAttributes As Long
        szDisplayName As String * MAX_PATH
        szTypeName As String * 80
    End Type
    Private Declare Function OleCreatePictureIndirect Lib "oleaut32.dll" (pDicDesc As TypeIcon, riid As CLSID, ByVal fown As Long, lpUnk As Object) As Long
    Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
    Private Const SHGFI_ICON = &H100
    Private Const SHGFI_LARGEICON = &H0
    Private Const SHGFI_SMALLICON = &H1

    'aFileName Διαδρομή του αρχείου π.χ.C:\Windows\Myapp.exe) ,imglist το imagelist που γεμίζει μέ την είκόνα που σχετίζεται το αρχείο

    Public Sub SetIcon(ByVal aFileName As String, imglist As Object)
    Dim fName As String
    Dim Index As Integer
    Dim hIcon As Long
    Dim item_num As Long
    Dim icon_pic As IPictureDisp
    Dim sh_info As SHFILEINFO
    Dim cls_id As CLSID
    Dim hRes As Long
    Dim new_icon As TypeIcon
    Dim lpUnk As IUnknown
    fName = Trim(aFileName)
    If fName = "" Then

        Exit Sub
        End If
    SHGetFileInfo fName, 0, sh_info, Len(sh_info), SHGFI_ICON + SHGFI_LARGEICON
    hIcon = sh_info.hIcon
    With new_icon
        .cbSize = Len(new_icon)
        .picType = vbPicTypeIcon
        .hIcon = hIcon
    End With
    With cls_id
        .id(8) = &HC0
        .id(15) = &H46
    End With
    hRes = OleCreatePictureIndirect(new_icon, cls_id, 1, lpUnk)
    If hRes = 0 Then Set icon_pic = lpUnk

    On Error Resume Next
    If Not icon_pic Is Nothing Then
    imglist.ListImages.Add imglist.ListImages.Count + 1, aFileName, icon_pic
    End If

    End Sub

    'Κλήση της ρουτίνας

    Dim imgstr as string

    Dim sListIstem As MSComctlLib.ListItem

    imgstr="C:\myapp.exe"

    SetIcon imgstr, ImageList1

    set sListIstem =ListView1.ListItems.Add( , "blabla", "blabla", ImageList1.ListImages(imgstr).Index, ImageList1.ListImages(imgstr).Index)

    οπότε καταλαβαίνεις ότι όλο αυτό μπορεί να μπεί σέ ένα loop που γεμίζει το imagelist σου καί να συσχετίζεται μέ το listview σου

    Φαντάζομαι ότι εύκολα μπορείς να το περάσεις σέ VB2005


    Ιωάννης Μανουσάκης
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems