· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Как получить путь к "Пуск"

Посл.отвђт Сообщенiе


Дата: Мар 27, 2004 21:04:09

Здравствуйте!

Есть небольшой вопрос по Win32. Сейчас я
вовсю работаю над идей инсталлера. Почти
всё готово - сам движок уже описан, но осталось
совсем немного - поместить ярлык в группу "Пуск".
(Кстати, первую версию уже послал в "Исходники")
Я вычитал, что функция SHGetSpecialFolderLocation
может возвратить значение как:
"Address that receives a pointer to an item identifier
list specifying the folder's location relative to the
root of the name space (the desktop)." Но возвращается
что-то не то... Может быть приведёте уже готовый пример получения пути к папке "Пуск" в любом Windows?
Буду очень благодарен!

1990


Дата: Мар 27, 2004 22:35:27 · Поправил: NEOx

Качни исходники NSIS и там посмотри.

Или попробуй читать от сюда:
Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders

Параметр: Common Desktop

ЗЫ. Я точно не уверен, но вроде правильно.


Дата: Мар 27, 2004 22:38:50

Да, это работает под всеми осями. Ща глянул NSIS там так же сделанно.


Дата: Мар 27, 2004 22:51:34

Не, погоди, что-то я не то тебе дал. Сорри. Ща ещё погляжу...


Дата: Мар 27, 2004 22:57:18

NEOx
Жду. А NSIS исходники не кинешь, а то качать многовато последнюю версию, а в предыдущих я не знаю есть ли?


Дата: Мар 27, 2004 23:01:07

Вот, попробуй читай отсюда:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\S hell Folders

Параметр: Start Menu


Дата: Мар 27, 2004 23:04:46

1990

Жду. А NSIS исходники не кинешь, а то качать многовато последнюю версию, а в предыдущих я не знаю есть ли?

И предыдущая не меньше. Я ща все исходники просмотрел, читается путь к папке "Пуск" там через реестр. SHGetSpecialFolderLocation там вообще не используется, так что должно работать.


Дата: Мар 27, 2004 23:13:19

Вот кусок и ФАКа, тут тоже из реестра читается:

Вопрос:
Как узнать путь к каталогам Windows?
Ответ:
Следующий пример получает полный список каталогов по умолчанию
(Favorites, Desktop, Programs, Fonts, SendTo, Start, Menu,
Templates, Startup, Recent and NetHood) Windows и заносит его в
Memo.
Пример:

uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
reg : TRegistry;
ts : TStrings;
i : integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.LazyWrite := false;
reg.OpenKey(
'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',
false);
ts := TStringList.Create;
reg.GetValueNames(ts);
for i := 0 to ts.Count -1 do begin
Memo1.Lines.Add(ts.Strings[i] +
' = ' +
reg.ReadString(ts.Strings[i]));
end;
ts.Free;
reg.CloseKey;
reg.free;
end;

Думаю так это всё и делается.


Дата: Мар 28, 2004 15:25:49

Спасибо!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.076