سلام دوستان گل . من این پست رو فقط به خاطر xxxxx_xxxxx عزیز زدم که حرفش درست در بیاد. به افتخار xxxxx_xxxxx عزیز
نکته ویژوالي :
پیدا کردن آدرس فولدرهای مهم :
دیگه با این کد نیازی به تعریف تابع های متعدد برای پیدا کردن هریک از فولدرها نیست .
کد HTML:
Enum CSIDLFoldersSys
CSIDL_DESKTOP = &H0
CSIDL_PROGRAMS = &H2
CSIDL_PRINTERS = &H4
CSIDL_PERSONAL = &H5
CSIDL_FAVORITES = &H6
CSIDL_STARTUP = &H7
CSIDL_RECENT = &H8
CSIDL_SENDTO = &H9
CSIDL_STARTMENU = &HB
CSIDL_MYMUSIC = &HD
CSIDL_MYVIDEOS = &HE
CSIDL_DESKTOPDIRECTORY = &H10
CSIDL_MYCOMPUTER = &H11
CSIDL_NETWORKNEIGHBORHOOD = &H12
CSIDL_NETHOOD = &H13
CSIDL_FONTS = &H14
CSIDL_TEMPLATES = &H15
CSIDL_COMMON_STARTMENU = &H16
CSIDL_COMMON_PROGRAMS = &H17
CSIDL_COMMON_STARTUP = &H18
CSIDL_COMMON_DESKTOPDIRECTORY = &H19
CSIDL_APPDATA = &H1A
CSIDL_PRINTHOOD = &H1B
CSIDL_LOCAL_APPDATA = &H1C
CSIDL_COMMON_FAVORITES = &H1F
CSIDL_TEMPORARY_INTERNET_FILES = &H20
CSIDL_COOKIES = &H21
CSIDL_HISTORY = &H22
CSIDL_COMMON_APPDATA = &H23
CSIDL_WINDOWS = &H24
CSIDL_SYSTEM = &H25
CSIDL_PROGRAM_FILES = &H26
CSIDL_MYPICTURES = &H27
CSIDL_PROFILE = &H28
CSIDL_PROGRAM_FILES_COMMON = &H2B
CSIDL_COMMON_TEMPLATES = &H2D
CSIDL_COMMON_DOCUMENTS = &H2E
CSIDL_COMMON_ADMINTOOLS = &H2F
CSIDL_NETANDDIAlUpCONNECTIONS = &H31
CSIDL_COMMON_MYMUSIC = &H35
CSIDL_COMMON_MYPICTURES = &H36
CSIDL_RESOURCES = &H38
CSIDL_CDBURNING = &H3B
End Enum
Private Declare Function SHGetSpecialFolderLocation Lib "shell32" ( _
ByVal hwnd As Long, _
ByVal nFolder As Long, _
ppidl As Long) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" Alias "SHGetPathFromIDListA" ( _
ByVal Pidl As Long, _
ByVal pszPath As String) As Long
Private Declare Sub CoTaskMemFree Lib "ole32" (ByVal pvoid As Long)
Private Function GetPathSysFolder(ByVal FolderId As CSIDLFoldersSys) As String
On Error Resume Next
Const MAX_PATH = 260
Const NOERROR = 0
Dim lngPidlFound As Long
Dim FolderIdFound As Long
Dim lngPidl As Long
Dim strPath As String
strPath = Space(MAX_PATH)
lngPidlFound = SHGetSpecialFolderLocation(0, CLng(FolderId), lngPidl)
If lngPidlFound = NOERROR Then
FolderIdFound = SHGetPathFromIDList(lngPidl, strPath)
If FolderIdFound Then
GetPathSysFolder = Left$(strPath, InStr(1, strPath, vbNullChar) - 1)
End If
End If
CoTaskMemFree lngPidl
End Function
نفر بعدی حتما خود xxxxx_xxxxx عزیز با یه نکته با حال تره