the favorites folder, the history folder, etc
Printable View
the favorites folder, the history folder, etc
Heres an Example of how to do it :)
VB Code:
Option Explicit '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Copyright ©1996-2001 VBnet, Randy Birch, All Rights Reserved. ' Some pages may also contain other copyrights by the author. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' You are free to use this code within your own applications, ' but you are expressly forbidden from selling or otherwise ' distributing this source code without prior written consent. ' This includes both posting free demo projects made from this ' code as well as reproducing the code in text or html format. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Const CSIDL_DESKTOP = &H0 '{desktop} Public Const CSIDL_INTERNET = &H1 'Internet Explorer (icon on desktop) Public Const CSIDL_PROGRAMS = &H2 'Start Menu\Programs Public Const CSIDL_CONTROLS = &H3 'My Computer\Control Panel Public Const CSIDL_PRINTERS = &H4 'My Computer\Printers Public Const CSIDL_PERSONAL = &H5 'My Documents Public Const CSIDL_FAVORITES = &H6 '{user}\Favourites Public Const CSIDL_STARTUP = &H7 'Start Menu\Programs\Startup Public Const CSIDL_RECENT = &H8 '{user}\Recent Public Const CSIDL_SENDTO = &H9 '{user}\SendTo Public Const CSIDL_BITBUCKET = &HA '{desktop}\Recycle Bin Public Const CSIDL_STARTMENU = &HB '{user}\Start Menu Public Const CSIDL_DESKTOPDIRECTORY = &H10 '{user}\Desktop Public Const CSIDL_DRIVES = &H11 'My Computer Public Const CSIDL_NETWORK = &H12 'Network Neighbourhood Public Const CSIDL_NETHOOD = &H13 '{user}\nethood Public Const CSIDL_FONTS = &H14 'windows\fonts Public Const CSIDL_TEMPLATES = &H15 Public Const CSIDL_COMMON_STARTMENU = &H16 'All Users\Start Menu Public Const CSIDL_COMMON_PROGRAMS = &H17 'All Users\Programs Public Const CSIDL_COMMON_STARTUP = &H18 'All Users\Startup Public Const CSIDL_COMMON_DESKTOPDIRECTORY = &H19'All Users\Desktop Public Const CSIDL_APPDATA = &H1A '{user}\Application Data Public Const CSIDL_PRINTHOOD = &H1B '{user}\PrintHood Public Const CSIDL_LOCAL_APPDATA = &H1C '{user}\Local Settings _ '\Application Data (non roaming) Public Const CSIDL_ALTSTARTUP = &H1D 'non localized startup Public Const CSIDL_COMMON_ALTSTARTUP = &H1E 'non localized common startup Public Const CSIDL_COMMON_FAVORITES = &H1F Public Const CSIDL_INTERNET_CACHE = &H20 Public Const CSIDL_COOKIES = &H21 Public Const CSIDL_HISTORY = &H22 Public Const CSIDL_COMMON_APPDATA = &H23 'All Users\Application Data Public Const CSIDL_WINDOWS = &H24 'GetWindowsDirectory() Public Const CSIDL_SYSTEM = &H25 'GetSystemDirectory() Public Const CSIDL_PROGRAM_FILES = &H26 'C:\Program Files Public Const CSIDL_MYPICTURES = &H27 'C:\Program Files\My Pictures Public Const CSIDL_PROFILE = &H28 'USERPROFILE Public Const CSIDL_SYSTEMX86 = &H29 'x86 system directory on RISC Public Const CSIDL_PROGRAM_FILESX86 = &H2A 'x86 C:\Program Files on RISC Public Const CSIDL_PROGRAM_FILES_COMMON = &H2B 'C:\Program Files\Common Public Const CSIDL_PROGRAM_FILES_COMMONX86 = &H2C 'x86 Program Files\Common on RISC Public Const CSIDL_COMMON_TEMPLATES = &H2D 'All Users\Templates Public Const CSIDL_COMMON_DOCUMENTS = &H2E 'All Users\Documents Public Const CSIDL_COMMON_ADMINTOOLS = &H2F 'All Users\Start Menu\Programs _ '\Administrative Tools Public Const CSIDL_ADMINTOOLS = &H30 '{user}\Start Menu\Programs _ '\Administrative Tools Public Const CSIDL_FLAG_CREATE = &H8000& 'combine with CSIDL_ value to force 'create on SHGetSpecialFolderLocation() Public Const CSIDL_FLAG_DONT_VERIFY = &H4000 'combine with CSIDL_ value to force 'create on SHGetSpecialFolderLocation() Public Const CSIDL_FLAG_MASK = &HFF00 'mask for all possible flag values Public Const SHGFP_TYPE_CURRENT = &H0 'current value for user, verify it exists Public Const SHGFP_TYPE_DEFAULT = &H1 Public Const MAX_PATH = 260 Public Const S_OK = 0 'Converts an item identifier list to a file system path. Public Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" _ (ByVal pidl As Long, _ ByVal pszPath As String) As Long Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _ (ByVal hwndOwner As Long, _ ByVal nFolder As Long, _ pidl As Long) As Long Public Declare Sub CoTaskMemFree Lib "ole32.dll" _ (ByVal pv As Long) '--end block--
form code in next post
here is the form code :)
VB Code:
Option Explicit Private Sub Combo1_Click() Dim index As Long index = Combo1.ItemData(Combo1.ListIndex) If index > -1 Then Text1.Text = GetSpecialFolderLocation(index) End If End Sub Private Sub Form_Load() With Combo1 .Font.Name = "Courier New" .Font.Size = 9 .AddItem "CSIDL_DESKTOP {desktop}" .ItemData(.NewIndex) = &H0 .AddItem "CSIDL_INTERNET Internet Explorer (icon on desktop)" .ItemData(.NewIndex) = &H1 .AddItem "CSIDL_PROGRAMS Start Menu\Programs" .ItemData(.NewIndex) = &H2 .AddItem "CSIDL_CONTROLS My Computer\Control Panel" .ItemData(.NewIndex) = &H3 .AddItem "CSIDL_PRINTERS My Computer\Printers" .ItemData(.NewIndex) = &H4 .AddItem "CSIDL_PERSONAL My Documents" .ItemData(.NewIndex) = &H5 .AddItem "CSIDL_FAVORITES {user}\Favourites" .ItemData(.NewIndex) = &H6 .AddItem "CSIDL_STARTUP Start Menu\Programs\Startup" .ItemData(.NewIndex) = &H7 .AddItem "CSIDL_RECENT {user}\Recent" .ItemData(.NewIndex) = &H8 .AddItem "CSIDL_SENDTO {user}\SendTo" .ItemData(.NewIndex) = &H9 .AddItem "CSIDL_BITBUCKET {desktop}\Recycle Bin" .ItemData(.NewIndex) = &HA .AddItem "CSIDL_STARTMENU {user}\Start Menu" .ItemData(.NewIndex) = &HB .AddItem "CSIDL_DESKTOPDIRECTORY {user}\Desktop" .ItemData(.NewIndex) = &H10 .AddItem "CSIDL_DRIVES My Computer" .ItemData(.NewIndex) = &H11 .AddItem "CSIDL_NETWORK Network Neighbourhood" .ItemData(.NewIndex) = &H12 .AddItem "CSIDL_NETHOOD {user}\nethood" .ItemData(.NewIndex) = &H13 .AddItem "CSIDL_FONTS windows\fonts" .ItemData(.NewIndex) = &H14 .AddItem "CSIDL_TEMPLATES" .ItemData(.NewIndex) = &H15 .AddItem "CSIDL_COMMON_STARTMENU All Users\Start Menu" .ItemData(.NewIndex) = &H16 .AddItem "CSIDL_COMMON_PROGRAMS All Users\Programs" .ItemData(.NewIndex) = &H17 .AddItem "CSIDL_COMMON_STARTUP All Users\Startup" .ItemData(.NewIndex) = &H18 .AddItem "CSIDL_COMMON_DESKTOPDIRECTORY All Users\Desktop" .ItemData(.NewIndex) = &H19 .AddItem "CSIDL_APPDATA {user}\Application Data" .ItemData(.NewIndex) = &H1A .AddItem "CSIDL_PRINTHOOD {user}\PrintHood" .ItemData(.NewIndex) = &H1B .AddItem "CSIDL_LOCAL_APPDATA {user}\Local Settings\Application Data (non roaming)" .ItemData(.NewIndex) = &H1C .AddItem "CSIDL_ALTSTARTUP non localized startup" .ItemData(.NewIndex) = &H1D .AddItem "CSIDL_COMMON_ALTSTARTUP non localized common startup" .ItemData(.NewIndex) = &H1E .AddItem "CSIDL_COMMON_FAVORITES" .ItemData(.NewIndex) = &H1F .AddItem "CSIDL_INTERNET_CACHE" .ItemData(.NewIndex) = &H20 .AddItem "CSIDL_COOKIES" .ItemData(.NewIndex) = &H21 .AddItem "CSIDL_HISTORY" .ItemData(.NewIndex) = &H22 .AddItem "CSIDL_COMMON_APPDATA All Users\Application Data" .ItemData(.NewIndex) = &H23 .AddItem "CSIDL_WINDOWS GetWindowsDirectory()" .ItemData(.NewIndex) = &H24 .AddItem "CSIDL_SYSTEM GetSystemDirectory()" .ItemData(.NewIndex) = &H25 .AddItem "CSIDL_PROGRAM_FILES C:\Program Files" .ItemData(.NewIndex) = &H26 .AddItem "CSIDL_MYPICTURES C:\Program Files\My Pictures" .ItemData(.NewIndex) = &H27 .AddItem "CSIDL_PROFILE USERPROFILE" .ItemData(.NewIndex) = &H28 .AddItem "CSIDL_SYSTEMX86 x86 system directory on RISC" .ItemData(.NewIndex) = &H29 .AddItem "CSIDL_PROGRAM_FILESX86 x86 C:\Program Files on RISC" .ItemData(.NewIndex) = &H2A .AddItem "CSIDL_PROGRAM_FILES_COMMON C:\Program Files\Common" .ItemData(.NewIndex) = &H2B .AddItem "CSIDL_PROGRAM_FILES_COMMONX86 x86 Program Files\Common on RISC" .ItemData(.NewIndex) = &H2C .AddItem "CSIDL_COMMON_TEMPLATES All Users\Templates" .ItemData(.NewIndex) = &H2D .AddItem "CSIDL_COMMON_DOCUMENTS All Users\Documents" .ItemData(.NewIndex) = &H2E .AddItem "CSIDL_COMMON_ADMINTOOLS All Users\Start Menu\Programs\Administrative Tools" .ItemData(.NewIndex) = &H2F .AddItem "CSIDL_ADMINTOOLS {user}\Start Menu\Programs\Administrative Tools" .ItemData(.NewIndex) = &H30 End With End Sub Private Function GetSpecialFolderLocation(CSIDL As Long) As String Dim sPath As String Dim pidl As Long 'fill the idl structure with the specified folder item If SHGetSpecialFolderLocation(Me.hWnd, CSIDL, pidl) = S_OK Then 'if the pidl is returned, initialize 'and get the path from the id list sPath = Space$(MAX_PATH) If SHGetPathFromIDList(ByVal pidl, ByVal sPath) Then 'return the path GetSpecialFolderLocation = Left(sPath, InStr(sPath, Chr$(0)) - 1) End If 'free the pidl Call CoTaskMemFree(pidl) End If End Function '--end block--'
Hope that helped :d