Форум: "WinAPI";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизDocuments and Settings Найти похожие ветки
← →
Германн © (2004-05-26 01:34) [0]Помогите неучу определить путь к сабжу.
Поясню вопрос. Никогда ранее не занимали меня подобные вопросы. Но вчера моя дочка спросила - можно ли ее подружке передать игру, которая есть у нас на компьютере. Проверил, убедился, что игрушка не требует установки. Предложил записать ее на "CD-болванке"(их есть у меня). Записал и, учитывая юзерский уровень подружки и ее семьи, сверстал на скорую руку Autorun, что бы не было проблем с запуском. Но когда приблизилось время передачи болванки подружке, Ч... дернул меня сказать дочке, что на этой болванке есть еще место для других игр. Через 15 минут мне заказали добавить еще одну игрушку, но поставили условие, что отдать диск нужно через минимум минут. Я добавил ее, изменил и перекомпилировал Autorun, но впопыхах не заметил, что добавленная игрушка читает и сохраняет файл с результатами в "текущей директории". Естественно на CD такой вариант - не возможен. Стал думать куда поместить "файл результатов". После предварительного анализа системного диска выбрал каталог "Documents and Settings\...\ApplicationData".
Но вот как получить его имя для данного пользователя и для всех пользователей, причем (но не обязательно) для всех ОС - это вопрос!
Может быть я не прав в в выборе каталога "Documents and Settings"? Тогда что вы порекомендуете?
← →
GuAV © (2004-05-26 02:34) [1]
procedure TForm1.Button1Click(Sender: TObject);
var
P: PItemIDList;
S: array[0..max_path] of Char;
ShellMalloc: IMalloc;
begin
if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
begin
SHGetSpecialFolderLocation(Handle,CSIDL_PERSONAL,P);
SHGetPathFromIDList(P,S);
ShowMessage(S);
ShellMalloc.Free(P);
end;
end;
Вообще RTFM Shell"s Namespace
← →
Vasya.ru (2004-05-27 00:18) [2]function MyGetUserName : string;
var Size : cardinal;
PRes : PChar;
BRes : boolean;
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
PRes := StrAlloc(Size);
BRes := GetUserName(PRes, Size);
if BRes then result := StrPas(PRes) else result := "default";
end;
Возвращает имя текущего юзера
← →
Германн © (2004-05-27 02:19) [3]2 Vasya.ru (27.05.04 00:18) [2]
Спасибо, но имя юзера мне "до лампочки".
2 GuAV © (26.05.04 02:34) [1]
Вот тут большое спасибо! за "Shell"s Namespace". Проглядел бегло данный раздел хелпа. Буду, по мере необходимости, читать его подробно.
Но вот список параметров nFolger привел меня в некое уныние. "Мои документы" для данного пользователя у меня в кармане. Ну а прочие? В "Documents and Settings" есть ещё куча директорий(папок).
Если кто знает их значение или знает как их получить - откликнитесь пожалуйста. Достаточно ссылки на пункт в msdn.
Кроме того, очень желательны ссылки на информацию о современных принципах установки программ. Конкретнее - о рекомендуемых местах хранения рабочей информации для программы с учетом того, что вышеописанная может находиться на ReadOnly носителе.
← →
GuAV © (2004-05-27 02:40) [4][1] - Малость перемудрил. Есть SHGetSpecialFolderPath.
Описания нет в win32.hlp есть в MSDN.
> Если кто знает их значение или знает как их получить - откликнитесь
> пожалуйста. Достаточно ссылки на пункт в msdn.
CSIDL
> Конкретнее - о рекомендуемых местах хранения рабочей информации
> для программы
Имхо, CSIDL_APPDATA, CSIDL_xxxxx_APPDATA
← →
Германн © (2004-05-27 02:57) [5]2 GuAV © (27.05.04 02:40) [4]
Еще раз спасибо. Буду искать и читать.
← →
Kair © (2004-05-27 09:19) [6]Так, может это пригодится:
RootKey = HKey_Current_User
Software -> Microsoft -> Windows -> Current Version -> Explorer -> Shell Folders
Не знаю как там в Win98, а на Win2k есть...
← →
GuAV © (2004-05-27 14:01) [7]
> Не знаю как там в Win98, а на Win2k есть...
В Win98 есть[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Shell Folders]
"Common Desktop"="C:\\WIN98\\All Users\\Рабочий стол"
"Common Startup"="C:\\WIN98\\All Users\\Главное меню\\Программы\\Автозагрузка"
"Common AppData"="C:\\WIN98\\All Users\\Application Data"
"Personal"="D:\\DOC\\Мои документы\\"
Всё же, имхо, [4] - лучше, т.к. это документировано и для любой shell папки.
← →
GuAV © (2004-05-27 18:05) [8]
> В Win98 есть
>
>[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Shell
> Folders]
...и в HKey_Current_User тоже есть (другие).
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c