advertisement
Premier Club Log In/Registration
  Include Code  Search Tips
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   SKILLBUILDING  |   TIP BANK  |   SOURCEBANK  |   FORUMS  |   NEWSLETTERS
Browse DevX
Partners & Affiliates
advertisement
advertisement
Tip of the Day
Average Rating: 2/5 | Rate this item | 1 user has rated this item.
Tip formerly from VB2TheMax
Expertise: Intermediate
Language: VB5,VB6
June 9, 2001
SetFolderIcon - Associate an icon to a folder
Private Declare Function SetFileAttributes Lib "kernel32" Alias _
    "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As _
    Long) As Long

' Associate an icon to a folder, by creating a desktop.ini file into it.
' Within Explorer the specified icon will be displayed instead of the standard 
' folder icon
' Parameters:
'   sFolderPath: path of the folder to associate the icon to
'   sIconFile: icon file to associate. This can be a .ico, .exe or .dll file
'   iIconIndex: index of the icon in case the specified file contains more than 
' one icon (such as shell32.dll)
'
' Example:
'   SetFolderIcon "C:\NiceFolder", "C:\Documents\TestIcon.ico"

Sub SetFolderIcon(ByVal sFolderPath As String, ByVal sIconFile As String, _
    Optional ByVal iIconIndex As Long = 0)
    Dim sContent As String
    Dim sDesktopFile As String
    Dim bExists As Boolean
    Dim handle As Integer
    
    On Error Resume Next
    ' test whether both the folder and the icon file exist
    bExists = (GetAttr(sFolderPath) And vbDirectory) <> 0 And (GetAttr _
        (sIconFile) And vbDirectory) = 0
    If bExists = False Or Err.Number <> 0 Then Exit Sub
    
    ' build the file content
    sContent = "[.ShellClassInfo]" & vbCrLf & "IconIndex=" & iIconIndex & _
        vbCrLf & "IconFile=" & sIconFile
    
    'make the path for the desktop.ini file
    sDesktopFile = sFolderPath & IIf(Right$(sFolderPath, 1) = "\", "", _
        "\") & "desktop.ini"
    
    ' open the file and write the content
    handle = FreeFile
    Open sDesktopFile For Output As #handle
    Print #handle, sContent;
    Close #handle
    
    ' make the file hidden and the folder read only
    SetFileAttributes sDesktopFile, vbHidden
    SetFileAttributes sFolderPath, vbReadOnly
    
End Sub
Marco Bellinaso
If you have a hot tip and we publish it, we'll pay you. However, due to accounting overhead we no longer pay $10 for a single tip submission. You must accumulate 10 acceptable tips to receive payment. Be sure to include a clear explanation of what the technique does and why it's useful. If it includes code, limit it to 20 lines if possible. Submit your tip here.
Please rate this item (5=best)
 1  2  3  4  5
advertisement
advertisement
Advertising Info  |   Member Services  |   Permissions  |   Help  |   Site Map  |   Network Map  |   About


The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers