| 
;.lib "shell32.dll"
;SHGetSpecialFolderLocation%(hwnd%,folder%,pidl*)
;SHGetPathFromIDList%(pidl%,pszPath*)
Const MAX_PATH=260
Const CSIDL_PROGRAMS=2					;Program Groups Folder
Const CSIDL_PERSONAL=5					;Personal Documents Folder
Const CSIDL_FAVORITES=6					;Favorites Folder
Const CSIDL_STARTUP=7					;Startup Group Folder
Const CSIDL_RECENT=8					;Recently Used Documents Folder
Const CSIDL_SENDTO=9   					;Send To Folder
Const CSIDL_STARTMENU=11  				;Start Menu Folder
Const CSIDL_DESKTOPDIRECTORY=16  		;Desktop Folder
Const CSIDL_NETHOOD=19					;Network Neighborhood Folder
Const CSIDL_TEMPLATES=21				;Document Templates Folder
Const CSIDL_COMMON_STARTMENU=22			;Common Start Menu Folder
Const CSIDL_COMMON_PROGRAMS=23			;Common Program Groups Folder
Const CSIDL_COMMON_STARTUP=24			;Common Startup Group Folder
Const CSIDL_COMMON_DESKTOPDIRECTORY=25	;Common Desktop Folder
Const CSIDL_APPDATA=26					;Application Data Folder
Const CSIDL_PRINTHOOD=27				;Printers Folder
Const CSIDL_COMMON_FAVORITES=1			;Common Favorites Folder
Const CSIDL_INTERNET_CACHE=32			;Temp. Internet Files Folder
Const CSIDL_COOKIES=33					;Cookies Folder
Const CSIDL_HISTORY=34					;History Folder
AppTitle  GetSpecialFolderLocation(CSIDL_PERSONAL)
Function GetSpecialFolderLocation$(folder)
temp=CreateBank(4)
SHGetSpecialFolderLocation(0,folder,temp)
pidl=PeekInt(temp,0)
FreeBank temp
If Not pidl Return
temp=CreateBank(MAX_PATH)
SHGetPathFromIDList(pidl,temp)
s$=PeekString(temp,0)
FreeBank temp
Return s
End Function
Function PeekString$(bank,offset)
	l = PeekInt(bank,offset)
	s$ = ""
	For i = 0 To MAX_PATH
        s$ = s$ + Chr$(PeekByte(bank,offset+i))
	Next
	Return s$
End Function
WaitKey()
 
 
  
 
 I run the program and it works fine.
 
 error here:
 
 
  
 
   
 
 |