Сообщение от SBJoker
1. Приложение может писать в собственную папку в локали пользователя, получать через винапи функцию, константа что-то вроде AppData, лень искать точное название.
|
Угу, можно из переменной среды дернуть или через shell32:
Function EnvironmentVariable$(name$)
Local result$, length%, buffer%
result = ""
length = GetEnvironmentVariable(name, 0, 0)
If length > 0 Then
buffer = CreateBank(length)
If buffer Then
length = GetEnvironmentVariableA(name, buffer, length)
While length > 0
length = length - 1
result = Chr(PeekByte(buffer, length)) + result
Wend
FreeBank(buffer)
EndIf
EndIf
Return result
End Function
Const S_OK% = 0
Const MAX_PATH% = 260
Const CSIDL_APPDATA% = 26
Function FolderPath$(folder%)
Local result$, buffer%, i%, b%
result = ""
buffer = CreateBank(MAX_PATH)
If buffer Then
If SHGetFolderPathA(0, folder, 0, 0, buffer) = S_OK Then
For i = 0 To MAX_PATH - 1
b = PeekByte(buffer, i)
If b Then result = result + Chr(b) Else Exit
Next
EndIf
FreeBank(buffer)
EndIf
Return result
End Function
Print EnvironmentVariable("APPDATA")
Print FolderPath(CSIDL_APPDATA)
WaitKey()
End
деклс:
.lib "kernel32.dll"
GetEnvironmentVariable%(name$, buffer%, length%):"GetEnvironmentVariableA"
GetEnvironmentVariableA%(name$, buffer*, length%)
.lib "shell32.dll"
SHGetFolderPathA%(window%, folder%, token%, flags%, buffer*)
ЗЫ
Лучше конечно библиотечку набросать, все же через банки как-то извращенски
Ну и в либе можно будет юникодовый вариант дернуть и перевести в анси для блица.