Inno Setup (создание инсталяционных пакетов)

Статус
В этой теме нельзя размещать новые ответы.

DICI BF

Новичок
Тот что по умолчанию создается, если память меня не подводит он зависит от названия вашего сетапника.
Код:
OutputBaseFilename=Setup_rus
Это я уже понял а название его никак нельзя изменить? Например у меня сетапник "Setup" а .BIN "Data" (А не "Setup-1")
 

DICI BF

Новичок
Ну и последний вопрос который на данный момент меня интересует.
Реально ли сделать так?
Если рядом с сетапником есть папка "Game" то кнопка "Установить" активна а если её нет то неактивна.
 
Последнее редактирование:

ReFLeXx

Новичок
DICI BF, код
 

nik1967

Old Men
Проверенный
ReFLeXx, DICI BF,
[SOURCE="inno"][Setup]
AppName=Game
AppVersion=Game_v1
DefaultDirName={pf}\Game
OutputDir=.

Код:
procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpReady then
    WizardForm.NextButton.Enabled:= DirExists(ExpandConstant('{src}\Game'));
end;[/SOURCE][/SPOILER]
 

Shift85

Старожил
Как сделать свернуть и закрыть через лейбл.Зарание спасибо...
 

vint56

Ветеран
Проверенный
Shift85
Как сделать свернуть и закрыть через лейбл.Зарание спасибо...
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application


Код:
var
  Close: TLabel;
  Minimize: TLabel;

procedure CloseBtnClick(Sender: TObject);
begin
  WizardForm.Close;
end;

procedure MinimizeBtnClick(Sender: TObject);
begin
  SendMessage(WizardForm.Handle,$0112,61472,0);
end;

procedure InitializeWizard();
begin
  Close := TLabel.Create(WizardForm);
  with Close do
  begin
    Parent := WizardForm;
    Caption := 'Закрыть ';
    Left := ScaleX(128);
    Top := ScaleY(327);
    Width := ScaleX(47);
    Height := ScaleY(13);
    OnClick:=@CloseBtnClick;
  end;
  Minimize := TLabel.Create(WizardForm);
  with Minimize do
  begin
    Parent := WizardForm;
    Caption := 'Свернуть';
    Left := ScaleX(72);
    Top := ScaleY(327);
    Width := ScaleX(49);
    Height := ScaleY(13);
    OnClick:=@MinimizeBtnClick
  end;
end;[/SPOILER]

[B]Лёха[/B] [QUOTE]как привязать ярлык к выбранному компоненту?[/QUOTE]
[Icons]
Name: {commondesktop}\My Program; Filename: {app}\MyProg.exe; Tasks: desktopicon; IconIndex: 0; Components: comp 

[Components]
Name: comp; Description: Мой компонент

Обновил Task
[Tasks]
Name: icon; Description: Создать ярлыки; Flags: checkablealone
Name: icon\desktop; Description: На Рабочем столе; Flags: checkablealone
Name: icon\desktop2; Description: На Рабочем столе; Flags: checkablealone

[Icons]
Name: {commondesktop}\My Program1; Filename: {app}\MyProg1.exe; Tasks: icon\desktop
Name: {commondesktop}\My Program2; Filename: {app}\MyProg2.exe; Tasks: icon\desktop2

обновил
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Tasks]
Name: icon; Description: Создать ярлыки; Flags: checkablealone
Name: icon\desktop; Description: На Рабочем столе; Flags: checkablealone; Check: not IsWin64
Name: icon\desktop; Description: На Рабочем столе; Flags: checkablealone; Check: IsWin64

[Icons]
Name: {commondesktop}\My Program; Filename: {app}\32.exe; Tasks: icon\desktop; Check: not IsWin64
Name: {commondesktop}\My Program; Filename: {app}\64.exe; Tasks: icon\desktop; Check: IsWin64
 
Последнее редактирование:

Лёха

Участник
vint56,
ОБНОВИЛ
Код:
[Tasks]
Name: icon; Description: Создать ярлыки; Flags: checkablealone
Name: icon\desktop; Description: На Рабочем столе; Flags: checkablealone; Check: [COLOR="Red"]CheckError and not IsWin64 [/COLOR]
Name: icon\desktop2; Description: На Рабочем столе; Flags: checkablealone; Check: [COLOR="red"]CheckError and IsWin64[/COLOR]
А можно сделать как вот здесь проверка на винду, только что бы была проверка на выбранный компонент и в зависимости от компонента создавался ярлык,но чекбутон был один( как бы просто подтверждение нужно ли вообще создавать ярлык)
 
Последнее редактирование:

Дамир

Новичок
Нужно установить программу в папку "Users\Имя Пользователя\"("Documents and Settings\Имя пользователя\"). Как узнать путь этой папки для пользователя запустившего инсталлер?
 

sergey3695

Ветеран
Модератор
Дамир,
C:\D&S\User\Рабочий стол -- {userdesktop}

C:\D&S\All Users\Рабочий стол -- {commondesktop}

C:\D&S\User -- {userprofile}

C:\D&S\User\Избранное -- {userfavorites}

C:\D&S\Al Users\Избранное -- {commonfavorites}

C:\D&S\User\Local Settings\App Data -- {localappdata}

C:\D&S\User\Мои документы -- {userdocs}

C:\D&S\All Users\Общие документы -- {commondocs}

C:\D&S\User\Главное меню\Программы -- {userprograms}

C:\D&S\All Users\Главное меню\Программы -- {commonprograms}

C:\D&S\User\App Data -- {userappdata}

C:\D&S\All Users\App Data -- {commonappdata}

C:\D&S\User\Send To -- {sendto}

C:\ -- {systemdrive} или {sd}

C:\WINDOWS\Fonts -- {fonts}

C:\WINDOWS\Temp -- {tmp}

C:\WINDOWS -- {systemroot} или {windir} или {win}

C:\WINDOWS\System32 -- {sys} или {systemsystem}

C:\Program Files -- {programfiles} или {pf}

C:\Program Files\Common Files -- {commonprogramfiles}
Тут поищи :) (я конечно мог бы сказать где,но так интереснее...)
 

Дамир

Новичок
sergey3695, если ты про {userprofile} то такой скрипт не компилится "Unknown constant userprofile"
 

sergey3695

Ветеран
Модератор
Дамир, ну не попробовал. устарело значит...
CSIDL_PROFILE = $28;
Код:
[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 папок, путь которой хотим получить...
// Виртуальный каталог, представляющий Рабочий стол. (Корень в проводнике)
CSIDL_DESKTOP = $0000;
// Виртуальный каталог для Internet Explorer.
CSIDL_INTERNET = $0001;
// Меню Пуск -> Программы
CSIDL_PROGRAMS = $0002;
// Виртуальный каталог, содержащий иконки пунктов панели управления
CSIDL_CONTROLS = $0003;
// Виртуальный каталог, содержащий установленные принтеры
CSIDL_PRINTERS = $0004;
// Виртуальный каталог, представляющий папку "Мои документы"
CSIDL_PERSONAL = $0005;
// До Vista ссылался на какталог "Мои документы" на жёстком диске
// Избранное. (обычно C:\Documents and Settings\username\Favorites)
CSIDL_FAVORITES = $0006;
// Пуск -> Программы -> Автозагрузка
CSIDL_STARTUP = $0007;
// Недавние документы (обычно C:\Documents and Settings\username\My Recent Documents
CSIDL_RECENT = $0008;
// Папка, содержащая ярлыки меню "Отправить" (Sent to...) (обычно C:\Documents and Settings\username\SendTo)
CSIDL_SENDTO = $0009;
// Виртуальный каталог, содержащий файлы в корзине текущего пользователя
CSIDL_BITBUCKET = $000a;
// Элементы меню Пуск текущего пользователя (обычно C:\Documents and Settings\username\Start Menu)
CSIDL_STARTMENU = $000b;
// Рабочий стол текущего пользователя (обычно C:\Documents and Settings\username\Desktop)
CSIDL_DESKTOPDIRECTORY = $0010;
// Виртуальный каталог, представляющий папку "Мой компьютер"
CSIDL_DRIVES = $0011;
// Виртуальный каталог, представляющий "Сетевое окружение"
CSIDL_NETWORK = $0012;
// Папка "My Nethood Places" (обычно C:\Documents and Settings\username\NetHood)
// В неё ссылки на избранные расшаренные ресурсы
CSIDL_NETHOOD = $0013;
// Папка, содержащая установленные шрифты. (обычно C:\Windows\Fonts)
CSIDL_FONTS = $0014;
// Шаблоны документов. (Обычно Settings\username\Templates)
CSIDL_TEMPLATES = $0015;
// Элементы меню Пуск для всех пользователей. (обычно C:\Documents and Settings\All Users\Start Menu)
// Константы, начинающиеся на CSIDL_COMMON_ существуют только в NT версиях
CSIDL_COMMON_STARTMENU = $0016;
// Меню Пуск -> программы для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs)
CSIDL_COMMON_PROGRAMS = $0017;
// Меню Пуск -> Программы -> Автозагрузка для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs\Startup)
CSIDL_COMMON_STARTUP = $0018;
// Элементы Рабочего стола для всех пользователей (обычно C:\Documents and Settings\All Users\Desktop)
CSIDL_COMMON_DESKTOPDIRECTORY = $0019;
// Папка, в которой рограммы должны хранить свои данные(C:\Documents and Settings\username\Application Data)
CSIDL_APPDATA = $001a;
// Установленные принтеры. (обычно C:\Documents and Settings\username\PrintHood)
CSIDL_PRINTHOOD = $001b;
// user's nonlocalized Startup program group. Устарело.
CSIDL_ALTSTARTUP = $001d; // DBCS
// Устарело
CSIDL_COMMON_ALTSTARTUP = $001e; // DBCS
// Ссылки "Избранное" для всех пользователей
CSIDL_COMMON_FAVORITES = $001f;
// Временные Internet файлы (обычно C:\Documents and Settings\username\Local Settings\Temporary Internet Files)
CSIDL_INTERNET_CACHE = $0020;
// Папка для хранения Cookies (обычно C:\Documents and Settings\username\Cookies)
CSIDL_COOKIES = $0021;
// Хранит ссылки интернет истории IE
CSIDL_HISTORY = $0022;
// Административные инструменты текущего пользователя (например консоль MMC). Win2000+
CSIDL_ADMINTOOLS = $30;
// Папка для файлов, подготовленных к записи на CD/DVD
// (Обычно C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\CD Burning)
CSIDL_CDBURN_AREA = $3b;
// Папка, содержащая инструменты администрирования
CSIDL_COMMON_ADMINTOOLS = $2f;
// Папака AppData для всех пользователей. (обычно C:\Documents and Settings\All Users\Application Data)
CSIDL_COMMON_APPDATA = $23;
// Папка "Общие документы" (обычно C:\Documents and Settings\All Users\Documents)
CSIDL_COMMON_DOCUMENTS = $2e;
// Папка шаблонов документов для всех пользователей (Обычно C:\Documents and Settings\All Users\Templates)
CSIDL_COMMON_TEMPLATES = $2d;
// Папка "Моя музыка" для всех пользователей. (обычно C:\Documents and Settings\All Users\Documents\My Music)
CSIDL_COMMON_MUSIC = $35;
// Папка "Мои рисунки" для всех пользователей. (обычно C:\Documents and Settings\All Users\Documents\My Pictures)
CSIDL_COMMON_PICTURES = $36;
// Папка "Моё видео" для всех пользователей (C:\Documents and Settings\All Users\Documents\My Videos)
CSIDL_COMMON_VIDEO = $37;
// Виртуальная папка, представляет список компьютеров в вашей рабочей группе
CSIDL_COMPUTERSNEARME = $3d;
// Виртуальная папка, представляет список сетевых подключений
CSIDL_CONNECTIONS = $31;
// AppData для приложений, которые не переносятся на другой компьютер (обычно C:\Documents and Settings\username\Local Settings\Application Data)
CSIDL_LOCAL_APPDATA = $1c;
// Виртуальный каталог, представляющий папку "Мои документы"
CSIDL_MYDOCUMENTS = $0c;
// Папка "Моя музыка"
CSIDL_MYMUSIC = $0d;
// Папка "Мои рисунки"
CSIDL_MYPICTURES = $27;
// Папка "Моё видео"
CSIDL_MYVIDEO = $0e;
// Папка пользователя (обычно C:\Documents and Settings\username)
CSIDL_PROFILE = $28;
// Папка Program Files (обычно C:\Program Files)
CSIDL_PROGRAM_FILES = $26;
CSIDL_PROGRAM_FILESX86 = $2a;
// Папка Program Files\Common (обычно C:\Program Files\Common)
CSIDL_PROGRAM_FILES_COMMON = $2b;
CSIDL_PROGRAM_FILES_COMMONX86 = $2c;
// Папка для ресерсов. Vista и выше (обычно C:\Windows\Resources)
CSIDL_RESOURCES = $38;
CSIDL_RESOURCES_LOCALIZED = $39;
// Папака System (обычно C:\Windows\System32 или C:\Windows\System)
CSIDL_SYSTEM = $25;
CSIDL_SYSTEMX86 = $29;
// Папка Windows. Она же %windir% или %SYSTEMROOT% (обычно C:\Windows)
CSIDL_WINDOWS = $24;

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;
 

Winst@n

Участник
Проверенный
Shift85,
Могу ошибиться может все таки в 7ке есть сглаживание шрифта, а в Xp его нету. Вот и различие.
 

Kaktus

Новичок
Всем добрый вечер. Хочу спросить:
1) Можно ли сделать объект WizardForm.InfoBeforeMemo без заднего фона (т.е. прозрачным) (без ботвы) и если нет, то какой объект можно взять вместо него у которого есть прозрачность и скроллбар?
2) Чем отличается
Код:
SendMessage(WizardForm.CancelButton.Handle, $00F5, 0, 0);
от
Код:
WizardForm.Close
и что лучше?
3) С чем связана ошибка Память не может быть read. Появляется она один раз после установки когда нажимаешь на кнопку заdершить и больше она не появляется, хоть сто раз устанавливай.
Спасибо!!!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху