fbpx

Localizar Pastas do Windows

Localizar Pastas do Windows

‘Código que recupera Pastas do Windows, como Strings:
‘Ex: C:\Windows\Desktop, C:\Windows\Histórico…

‘——————-
‘Código para o Form
‘——————-

Option Explicit
Private Sub Form_Load()
Call AchePastas
End Sub
Private Sub AchePastas()
MsgBox ” 0- ” & ListaPastas(0) & vbCrLf & _
” 2- ” & ListaPastas(2) & vbCrLf & _
” 5- ” & ListaPastas(5) & vbCrLf & _
” 6- ” & ListaPastas(6) & vbCrLf & _
” 7- ” & ListaPastas(7) & vbCrLf & _
” 8- ” & ListaPastas(8) & vbCrLf & _
” 9- ” & ListaPastas(9) & vbCrLf & _
“11- ” & ListaPastas(11) & vbCrLf & _
“19- ” & ListaPastas(19) & vbCrLf & _
“20- ” & ListaPastas(20) & vbCrLf & _
“21- ” & ListaPastas(21) & vbCrLf & _
“26- ” & ListaPastas(26) & vbCrLf & _
“27- ” & ListaPastas(27) & vbCrLf & _
“32- ” & ListaPastas(32) & vbCrLf & _
“33- ” & ListaPastas(33) & vbCrLf & _
“34- ” & ListaPastas(34), , ” Pastas do Windows”
Unload Me

End Sub

‘————————

‘Código para o módulo BAS

‘————————

Option Explicit
‘APIs
Declare Function SHGetPathFromIDList Lib “shell32.dll” Alias “SHGetPathFromIDListA”
(ByVal pidl As Long, ByVal pszPath As String) As Long

Declare Function SHGetSpecialFolderLocation Lib “shell32.dll” (ByVal
hwndOwner As Long, ByVal nFolder As Long, pidl As ItemDaLista) As Long

‘Constantes

Public Type LOCMEIO
CB As Long
ABID As Byte
End Type

Public Type ItemDaLista
MKID As LOCMEIO
End Type

‘Função Pública

Public Function ListaPastas(ByVal CSIDL As Long) As String
Dim Zz As Long
Dim StrDoPath As String
Dim IDL As ItemDaLista
Const NOERRO = 0
Const TAM_MAX = 260
On Error GoTo PareFuncao:
Zz = SHGetSpecialFolderLocation(Form1.hWnd, CSIDL, IDL)
‘troque o nome do Form1 se ele tiver outro nome
If Zz = NOERRO Then
StrDoPath = Space$(TAM_MAX)
Zz = SHGetPathFromIDList(ByVal IDL.MKID.CB, ByVal StrDoPath)
If Zz Then ListaPastas = Left$(StrDoPath, InStr(StrDoPath, Chr$(0)) – 1)
End If
Exit Function
PareFuncao:
End Function

Compartilhe esta matéria
  , ,


Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.