![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Есть такие штуки, переменными среды именуются