'-------------------------------------------------------------------------------- DECLARE FUNCTION SHGetFolderPath LIB "Shell32.dll" _ ALIAS "SHGetFolderPathA" (BYVAL hwnd AS DWORD, BYVAL csidl AS LONG, _ BYVAL hToken AS DWORD, BYVAL dwFlags AS DWORD, pszPath AS ASCIIZ) AS LONG %CSIDL_STARTUP = &H0007 ' \Start Menu\Programs\Startup %CSIDL_LOCAL_APPDATA = &H001c ' \Local Settings\Application Data (non roaming) '-------------------------------------------------------------------------------- FUNCTION StartupFolder AS STRING LOCAL szBaseFolder AS ASCIIZ * %MAX_PATH ShGetFolderPath (BYVAL 0, %CSIDL_STARTUP, BYVAL 0, BYVAL 0, szBaseFolder) FUNCTION = TRIM$(szBaseFolder) + "\" END FUNCTION '-------------------------------------------------------------------------------- FUNCTION LocalAppData AS STRING LOCAL szBaseFolder AS ASCIIZ * %MAX_PATH ShGetFolderPath (BYVAL 0, %CSIDL_LOCAL_APPDATA, BYVAL 0, BYVAL 0, szBaseFolder) FUNCTION = TRIM$(szBaseFolder) + "\" END FUNCTION '-------------------------------------------------------------------------------- FUNCTION RoamingAppData AS STRING LOCAL e AS STRING e = LCASE$(LocalAppData()) REPLACE "\local\" WITH "\roaming\" IN e FUNCTION = e END FUNCTION '--------------------------------------------------------------------------------