Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Inno Setup и папки юзера [D5, XP]


Учусь ©   (2011-04-14 13:09:00) 

Как заставить Inno Setup распаковать некоторые файлы в папку юзера:
c:\Users\Имя Юзера\AppData\Local\Папка моего приложения

Чот разбирая со словарем хельп Inno Setup-а так и не увидел в нем этого. Помогите?


  (2011-04-15 05:31:00) [1]

Удалено модератором


Учусь   (2011-04-14 18:16:00) [2]

Нашел русский хельп на Inno Setup и в нем нашел что мне нужно:

{localappdata}
Путь к локальной папке приложения.

Конечно, в такой программе должны быть все нужные константы, и не стоило сомневаться, а стоило лучше учить английский:)
Благодарю всех, кто откликнулся:)


Учусь   (2011-04-14 18:01:00) [3]


> > c:\Users\

Это в семерке. Аналог ХР - C:\Dcuments and Settings\


Германн   (2011-04-14 18:00:00) [4]

А что это за папка?

> c:\Users\


Учусь   (2011-04-14 17:56:00) [5]


> Облегчи себе жизнь. Скачай и установи InnoIDE http://www.
> innoide.org/

Да это наоборот усложнит:) Мне надо то одну дллку распаковать правильно и все. И затык в одной переменной. Щас, разберусь с вашей помощью и сделаю:)


Учусь   (2011-04-14 17:54:00) [6]


> {userappdata} не то?

Попробовал, и не могу найти куда он длл-ку распаковал:(
Тут:
c:\Users\Имя Юзера\AppData\Local\Папка моего приложения
ее нет:(


> а можно так прямо вызывать функции?

Не знаю. Вроде не ругается. А как там, в скрипте, можно объявить переменную? Чтобы сначала в нее результат функции, а потом ее в скрипт?


Германн   (2011-04-14 17:48:00) [7]


> Чот разбирая со словарем хельп Inno Setup-а так и не увидел
> в нем этого. Помогите?

Облегчи себе жизнь. Скачай и установи InnoIDE http://www.innoide.org/


clickmaker   (2011-04-14 17:40:00) [8]

> DestDir: GetSpecialPath(CSIDL_LOCAL_APPDATA); Flags: ignoreversion
>
> Не работает:(

а можно так прямо вызывать функции?


Германн   (2011-04-14 17:34:00) [9]

{userappdata} не то?


Учусь   (2011-04-14 17:24:00) [10]

Пытаюсь использовать вышеупомянутый код в создании инсталлятора так:

[Files]
Source: "D:\my_coding\Free\build\myres1.dll"; DestDir: GetSpecialPath(CSIDL_LOCAL_APPDATA);Flags: ignoreversion

Не работает:(  
Разве так нельзя - в переменную DestDir результат функции GetSpecialPath(CSIDL_LOCAL_APPDATA); ?

А как тогда сделать? Помогите плис.


Учусь   (2011-04-14 17:00:00) [11]

неа


Dennis I. Komarov   (2011-04-14 15:25:00) [12]

А просто %APPDATE%\bla-bla не канает?


Учусь   (2011-04-14 15:12:00) [13]

Вот что, среди прочего, выдает гугля:

; Данный скрипт позволяет получить путь к стандартным папкам Windows

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Code]
const
 MAX_PATH = 260;
 // ниже приведён список id папок, путь которой хотим получить...
 // дальше длииный список, я его сократил до того что мне нужно:

 // Папка, в которой рограммы должны хранить свои данные(C:\Documents and Settings\username\Application Data)
 CSIDL_APPDATA                 = $001a;
 // AppData для приложений, которые не переносятся на другой компьютер (обычно C:\Documents and Settings\username\Local Settings\Application Data)
 CSIDL_LOCAL_APPDATA           = $1c;

function SHGetSpecialFolderPath(hwndOwner: HWND; lpszPath: PChar; nFolder: Integer; fCreate: BOOL): BOOL;
 external 'SHGetSpecialFolderPathA@shell32.dll stdcall';

function GetSpecialPath(CSIDL: Word): string;
var
 s:  string;
begin
 SetLength(s, MAX_PATH);
 if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, True) then s := '';
 Result:= PChar(s);
end;

procedure InitializeWizard;
begin
 // определим расположение папки "Мои рисунки"
 MsgBox(GetSpecialPath(CSIDL_MYPICTURES), mbInformation, MB_OK);
end
;

Но терзают меня смутные сомнения - может всетаки должны быть в нем стандартные константы?


Dennis I. Komarov   (2011-04-14 14:59:00) [14]

И еще API функция, не помню как ее, но гугля должен знать...


Dennis I. Komarov   (2011-04-14 14:53:00) [15]

Есть такие штуки, переменными среды именуются


Наверх

Титульная страница Поиск, карта сайта Написать письмо