Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
3-1087308867
Ross
2004-06-15 18:14
2004.07.11
Дата


3-1086886333
valex1
2004-06-10 20:52
2004.07.11
отладка хранимых процедур


1-1088020143
DDA
2004-06-23 23:49
2004.07.11
Изменение ресурсов


1-1088434713
Wahnsinng
2004-06-28 18:58
2004.07.11
MsWord


14-1088020804
Anatoly Podgoretsky
2004-06-24 00:00
2004.07.11
Юрий Зотов с днем рождения!