Opa mannow para tanto faça o seguinte:
'Na seção geral do módulo(General)
Const CSIDL_DESKTOP = &H0
Const CSIDL_PROGRAMS = &H2
Const CSIDL_CONTROLS = &H3
Const CSIDL_PRINTERS = &H4
Const CSIDL_PERSONAL = &H5
Const CSIDL_FAVORITES = &H6
Const CSIDL_STARTUP = &H7
Const CSIDL_RECENT = &H8
Const CSIDL_SENDTO = &H9
Const CSIDL_BITBUCKET = &HA
Const CSIDL_STARTMENU = &HB
Const CSIDL_DESKTOPDIRECTORY = &H10
Const CSIDL_DRIVES = &H11
Const CSIDL_NETWORK = &H12
Const CSIDL_NETHOOD = &H13
Const CSIDL_FONTS = &H14
Const CSIDL_TEMPLATES = &H15
Const MAX_PATH = 260
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Private Function PastaEspWindows(CSIDL As Long) As String
Dim ret As Long
Dim IDL As ITEMIDLIST
'Obtém a pasta "Especial" do windows
ret = SHGetSpecialFolderLocation(100, CSIDL, IDL)
If r = NOERROR Then
'Cria um buffer string
Path$ = Space$(512)
'Obtém o caminho da IDList
r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
'Remove espaços desnecessários.
PastaEspWindows = Left$(Path, InStr(Path, Chr$(0)) - 1)
Exit Function
End If
PastaEspWindows = ""
End Function
'Dentro de um button por ex.:
Dim StrPasta As String
StrPasta = PastaEspWindows(CSIDL_FONTS)
ShellExecute Me.hwnd, vbNullString, vbNullString, vbNullString, StrPasta, SW_SHOWNORMAL
Bem é isso ae qq coisa post... Abraços, Sidnei