Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]


Страниц : 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Tima182
07-04-2013, 22:08
Распаковать в любую папку, запустить скрипт, чуть отредактировать и компиллировать сетап?

Gnom_aka_Lexander
07-04-2013, 22:11
Ооо... Ты-ж скачал? там вроде все понятно. Можно удалить все, что касается jre и Java из этого скрипта, в остальное - просто кладешь рядом папку .minecraft со своей сборкой и компилишь.

Tima182
07-04-2013, 22:31
Мне просто установка нужна.
Я кинул, ругается на много чего...
У меня проблема, помогите на рабочий стол и в пуск создать по 3 ярлыка игры?
При компиляции сетупа ехе игры находится в папке %AppData%\.minecraft\Лаунчеры
А когда скомпилирует, установится, ехе игры уже тут находится %AppData%\.minecraft
Помогите исправить?
1 имя: MultiMinecrafter
2 имя: XRAM Launcher
Все ехе.
А в конце установки нужно что бы был 1 запуск игры.
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Minecraft"
#define MyAppVersion "1.4.7"
#define MyAppExeName "Minecraft.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{30F4D7A3-7C27-4A82-9977-F785B48D23FE}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={userappdata}\.minecraft\
DisableDirPage=true
DefaultGroupName={#MyAppName}
OutputDir=C:\Users\Тима\Desktop
OutputBaseFilename=Minecraft
Compression=lzma/ultra
SolidCompression=true
PrivilegesRequired=none

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

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: C:\Users\Тима\AppData\Roaming\.minecraft\Лаунчеры\Minecraft.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\Users\Тима\AppData\Roaming\.minecraft\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
Name: {commondesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon

[Run]
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifsilent

insombia
07-04-2013, 23:07
Tima182 пример для 3 ярлыков
Name: {userdesktop}\icon1; Filename: {app}\icon1.exe; WorkingDir: {app}\Лаунчеры; Check: MakeDesktopIcon and checkerror
Name: {userdesktop}\icon2; Filename: {app}\icon2.exe; WorkingDir: {app}\Лаунчеры; Check: MakeDesktopIcon and checkerror
Name: {userdesktop}\icon3; Filename: {app}\icon3.exe; WorkingDir: {app}\Лаунчеры; Check: MakeDesktopIcon and checkerror

Name: {group}\icon1; Filename: {app}\icon1.exe; Check: MakeDesktopIcon and checkerror
Name: {group}\icon2; Filename: {app}\icon2.exe; Check: MakeDesktopIcon and checkerror
Name: {group}\icon3; Filename: {app}\icon3.exe; Check: MakeDesktopIcon and checkerror
думаю я тебя правильно понял?

Помогите исправить?
1 имя: MultiMinecrafter
2 имя: XRAM Launcher
не совсем понял что тебе нужно?

Помогите исправить?
1 имя: MultiMinecrafter
2 имя: XRAM Launcher
не понял что тебе именно нужно?

Tima182
07-04-2013, 23:31
В скрипт добавить что бы создавались для 3-х файлов ярлыки: пуск>программы>minecraft, и на рабочий стол.
3 файла:
minecraft
MultiMinecrafter
XRAM Launcher
Которым нужно что бы создавались ярлыки в 2-х местах.
И еще нужно что бы значек был каждой своей ехе, к которой будет ярлык в программах и рабочий стол.
И еще что бы 3 галочки можно было ставить в конце, запуск приложений.
А лучше что бы 1 галочка на саму игру minecraft.exe стояла, а вторые дополнительно.
Вот и все.

habib2302
07-04-2013, 23:42
доброе время суток.я незнаю как это объяснть?короче.я делаю репак aida64 2в1.например.общая папка {pf}\FinalWire а при выборе компанента AIDA64 Business Edition дописывалась автоматически папка.например был {pf}\FinalWire а стал {pf}\FinalWire\AIDA64 Business Edition

saurn
08-04-2013, 03:25
habib2302, установка каждой версии в свою подпапку? В вашем скрипте это есть.

#define AIDA641 "AIDA64 Extreme Edition"
#define AIDA642 "AIDA64 Business Edition"

[Setup]
DefaultDirName={pf}\FinalWire

[Files]
Source: {app}\{#AIDA641}\*; DestDir: {app}\{#AIDA641}; Flags: ignoreversion recursesubdirs createallsubdirs; Components: AIDA641;
Source: {app}\{#AIDA642}\*; DestDir: {app}\{#AIDA642}; Flags: ignoreversion recursesubdirs createallsubdirs; Components: AIDA642;

Nightwishh
08-04-2013, 03:39
Ребят а подскажите, можно ли вместо WizardForm.DirEdit использывать Label или Memo или Panel для указания пути, просто WizardForm.DirEdit не имеет св-ва прозрачности, а мне хотелось бы сделать эту рамку прозрачной, если можно то как?

saurn
08-04-2013, 04:32
Nightwishh, тут (http://forum.oszone.net/post-2074787-1586.html) оно?

---------------------------------------------------------------------------------------------------------------------
neorom, в чем сложность? Скрипт покажите.

Ну и, если хочется проценты через внешнюю библиотеку, пожалуйста:
[Files]
Source: InnoCallback.dll; Flags: dontcopy noencryption nocompression deleteafterinstall;

[Code]

type
TTimerProc = procedure(HandleW, Msg, idEvent, TimeSys: LongWord);


function WrapTimerProc(callback: TTimerProc; Paramcount: Integer): longword; external 'wrapcallback@{tmp}\InnoCallback.dll stdcall delayload';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): longword; external 'SetTimer@user32';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32 stdcall delayload';

var
pLabel: TLabel;
pTimer: LongWord;

function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\InnoCallback.dll')) then ExtractTemporaryFile('InnoCallback.dll');
Result := True;
end;

function pStr(Float: Extended): String;
begin
Result:= Format('%.1n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
end;

procedure pInstall(h, msg, idevent, dwTime: Longword);
begin
with WizardForm.ProgressGauge do
begin
pLabel.Caption:= pStr((Position*100)/Max) + '%';
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall:
begin
pLabel := TLabel.Create(nil);
with pLabel do
begin
Parent := WizardForm.ProgressGauge;
SetBounds(WizardForm.ProgressGauge.Left, WizardForm.ProgressGauge.Top + 2, WizardForm.ProgressGauge.Width, WizardForm.ProgressGauge.Height);
Alignment := taCenter;
Align := alNone;
AutoSize := False;
Font.Color := clBlack;
Font.Height := -12;
Font.Name := 'Tahoma';
Font.Style := [fsBold];
Transparent := True;
end;

pTimer:= SetTimer(0, 0, 100, WrapTimerProc(@pInstall, 4));
end;

ssPostInstall:
begin
KillTimer(0, pTimer);
pLabel.Free;
end;
end;
end;

procedure DeinitializeSetup();
begin
KillTimer(0, pTimer);
end;



---------------------------------------------------------------------------------------------------------------------
Tima182

#define MyAppName "Minecraft"
#define MyAppVersion "1.4.7"
#define MyAppExeName "Minecraft.exe"
#define MultiMinecrafter "MultiMinecrafter.exe"
#define XRAM Launcher "XRAM Launcher.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{30F4D7A3-7C27-4A82-9977-F785B48D23FE}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={userappdata}\.minecraft\
DisableDirPage=true
DefaultGroupName={#MyAppName}
OutputDir=C:\Users\Тима\Desktop
OutputBaseFilename=Minecraft
Compression=lzma/ultra
SolidCompression=true
PrivilegesRequired=none

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

[Files]
;Зачем здесь эта строка, если во второй строке из этой же папки все файлы копируются по маске?
;Source: C:\Users\Тима\AppData\Roaming\.minecraft\Лаунчеры\Minecraft.exe; DestDir: {app}; Flags: ignoreversion

Source: C:\Users\Тима\AppData\Roaming\.minecraft\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Icons]
Name: {group}\Minecraft; Filename: {app}\Лаунчеры\{#MyAppExeName}; WorkingDir: {app}\Лаунчеры;
Name: {group}\MultiMinecrafter; Filename: {app}\Лаунчеры\{#MultiMinecrafter}; WorkingDir: {app}\Лаунчеры;
Name: {group}\XRAM Launcher; Filename: {app}\Лаунчеры\{#XRAM Launcher}; WorkingDir: {app}\Лаунчеры;
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe};

Name: {commondesktop}\Minecraft; Filename: {app}\Лаунчеры\{#MyAppExeName}; WorkingDir: {app}\Лаунчеры; Tasks: desktopicon;
Name: {commondesktop}\MultiMinecrafter; Filename: {app}\Лаунчеры\{#MultiMinecrafter}; WorkingDir: {app}\Лаунчеры; Tasks: desktopicon;
Name: {commondesktop}\XRAM Launcher; Filename: {app}\Лаунчеры\{#XRAM Launcher}; WorkingDir: {app}\Лаунчеры; Tasks: desktopicon;

[Run]
Filename: {app}\Лаунчеры\{#MyAppExeName}; Description: Запустить Minecraft; Flags: nowait postinstall skipifsilent
Filename: {app}\Лаунчеры\{#MultiMinecrafter}; Description: Запустить MultiMinecrafter; Flags: nowait postinstall skipifsilent unchecked
Filename: {app}\Лаунчеры\{#XRAM Launcher}; Description: Запустить XRAM Launcher; Flags: nowait postinstall skipifsilent unchecked

audiofeel
08-04-2013, 09:11
Доброе утро всем, подскажите с примером "Запись имя пользователя в ini" - мне нужно просто имя в первой строке и во второй пароль, без этих "[ ]" или "=", ну как мне кажется все перепробовал но эти два символа остаются [...Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program

[....Code]
var
EditPage: TWizardPage;
MyEdit: TEdit;

procedure MyEditOnChange(Sender: TObject);
begin
if MyEdit.Text = '' then
WizardForm.NextButton.Enabled := False
else
WizardForm.NextButton.Enabled := True;
end;

procedure CreateEditPage();
begin
EditPage := CreateCustomPage(wpWelcome, 'Text_1', 'Text_2');

with TNewStaticText.Create(EditPage) do
begin
AutoSize := False;
WordWrap := True;
SetBounds(0, 0, WizardForm.InnerNotebook.Width, ScaleY(28));
Caption := 'Text_3';
Parent := EditPage.Surface;
end;

with TNewStaticText.Create(EditPage) do
begin
AutoSize := True;
WordWrap := True;
SetBounds(0, ScaleY(28), WizardForm.InnerNotebook.Width, ScaleY(14));
Caption := 'Name:';
Parent := EditPage.Surface;
end;

MyEdit := TEdit.Create(EditPage);
with MyEdit do
begin
SetBounds(0, ScaleY(44), WizardForm.InnerNotebook.Width, ScaleY(21));
OnChange := @MyEditOnChange;
Parent := EditPage.Surface;
end;
end;

procedure InitializeWizard();
begin
CreateEditPage();
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
SetIniString('main', 'user', MyEdit.Text, ExpandConstant('{app}\MyIni.ini'));
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if (CurPageID = EditPage.ID) and (MyEdit.Text = '') then
WizardForm.NextButton.Enabled := False;
end;

saurn
08-04-2013, 09:16
мне нужно просто имя в первой строке и во второй пароль, без этих "[ ]" или "=" »
Пусть меня поправит, кто-нибудь более сведущий, но в *.ini по-другому нельзя - "[ ]" и "=" создаются неизбежно. Такова структура файла.

----------------------------------------------------------------------
UPD:

Впрочем, можно попробовать записать через Code, посредством SaveStringToFile
SaveStringToFile(ExpandConstant('{app}')+'\имя файла.ini', 'имя пользователя', true);

audiofeel
08-04-2013, 09:22
saurn, Да вот два часа назад поставил игрушку (вводил ник и пароль) = в папке с игрой ини фаил без [ ] , =. как он (они, оно) это сделал(и)? может попробовать енто дело в простой " .txt" а потом переименовать, но опять вопрос как

saurn, SaveStringToFile(ExpandConstant('{app}')+'\имя файла.ini', 'имя пользователя', true); » ОК а как это все через "т эдит" сделать , ну вобщем вставить в тот пример

saurn
08-04-2013, 09:44
audiofeel, так же, как вы делали с ini

procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssPostInstall: SaveStringToFile(ExpandConstant('{app}')+'\имя файла.ini', MyEdit.Text, true)
...
end;

habib2302
08-04-2013, 10:38
saurn, я имел виду как дописать подпапку в страницах выбора папки.
вот как выглядит сейчас
http://img442.imageshack.us/img442/7804/thumbtrz.png (http://img259.imageshack.us/img259/1570/snagit00010804201393206.png) http://img542.imageshack.us/img542/7296/thumbso.png (http://img221.imageshack.us/img221/2824/snagit00020804201393213.png)
а при выборе компанента AIDA64 Business Edition должно получиться вот так
http://img832.imageshack.us/img832/9607/thumbnqh.png (http://img443.imageshack.us/img443/7891/snagit00040804201393653.png) http://img33.imageshack.us/img33/2918/thumbqec.png (http://img844.imageshack.us/img844/5881/snagit00050804201393709.png)

saurn
08-04-2013, 11:10
habib2302, как-то так:
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectProgramGroup:
begin
if IsComponentSelected('AIDA642') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA642}';
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA642}';
end else begin
WizardForm.DirEdit.Text := ExpandConstant('{#SetupSetting("DefaultDirName")}');
WizardForm.GroupEdit.Text := ExpandConstant('{#SetupSetting("DefaultGroupName")}');
end;
end;
end;
end;

///////////////////////////////////////////// можно и так:

var
OldCompListOnClickCheck: TNotifyEvent;

procedure ComponentsListOnClickCheck(Sender: TObject);
begin
OldCompListOnClickCheck(TNewCheckListBox(Sender));
case WizardForm.ComponentsList.ItemIndex of
0:
begin
WizardForm.DirEdit.Text := ExpandConstant('{#SetupSetting("DefaultDirName")}');
WizardForm.GroupEdit.Text := ExpandConstant('{#SetupSetting("DefaultGroupName")}');
end;
1:
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA642}'
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA642}'
end;
end;
end;

procedure InitializeWizard;
begin
OldCompListOnClickCheck := WizardForm.ComponentsList.OnClickCheck;
WizardForm.ComponentsList.OnClickCheck := @ComponentsListOnClickCheck;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectComponents then ComponentsListOnClickCheck(WizardForm.ComponentsList);
end;

habib2302
08-04-2013, 11:31
и как еще поменять местами страницы SelectDirPage и SelectComponentsPage

saurn
08-04-2013, 11:52
и как еще поменять местами страницы SelectDirPage и SelectComponentsPage »
тут (http://forum.oszone.net/post-2100306-1737.html) есть пара примеров

nik1967
08-04-2013, 12:02
habib2302, ; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!

#define MyAppName "AIDA64"
#define MyAppVersion "2.85.2400"
#define MyAppPublisher "Copyright (c) 1995-2013 FinalWire Ltd."
#define MyAppURL "http://www.aida64.com/"
#define AIDA641 "AIDA64 Extreme Edition"
#define AIDA642 "AIDA64 Business Edition"
#define AIDA64EXE1 "aida64.exe"
#define AIDA64EXE2 "aida64.exe"
#define AuthRep "Xabib"
#include "WinTB.iss"
#include "botva2.iss"

[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\FinalWire
DefaultGroupName=FinalWire
AllowNoIcons=true
OutputBaseFilename={#MyAppName} {#MyAppVersion}
SetupIconFile=ico.ico
Compression=lzma/Ultra64
SolidCompression=true
InternalCompressLevel=Ultra64
DiskSpanning=false
DiskSliceSize=736000000
ShowLanguageDialog=auto
SlicesPerDisk=4
UninstallDisplayIcon={app}\ico.ico
InfoBeforeFile=info.rtf
;Авторские права.
VersionInfoCopyright={#AuthRep}
;Производитель.
AppPublisher={#AuthRep}
RawDataResource=Botva:botva2.dll|b2p:b2p.dll|Logo:logo.png|bPic:bPic.png|LiPic:LiPic.png|aPic:aPic.p ng
AppCopyright={#AuthRep}
AppVerName={#MyAppVersion}
UninstallDisplayName={#MyAppName}
AppModifyPath={app}
VersionInfoVersion={#MyAppVersion}
VersionInfoTextVersion={#MyAppVersion}
VersionInfoProductName={#MyAppName}
VersionInfoProductVersion={#MyAppVersion}
DirExistsWarning=no

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

[Components]
Name: AIDA641; Description: {#AIDA641}; Flags: exclusive;
Name: AIDA642; Description: {#AIDA642}; Flags: exclusive;

[Tasks]
Name: icons; Description: Создать Ярлыки:;
Name: icons\desktop; Description: На Рабочем Столе;
Name: icons\quicklaunchicon; Description: В Панели Задач; OnlyBelowVersion: 0,6.1;

[Files]
;Файлы распаковываемые в папку с игрой. Необходимы для деинсталлятора;
Source: WinTB.dll; Flags: dontcopy;
Source: info.rtf; DestDir: {app}; Flags: ignoreversion
Source: ico.ico; DestDir: {app}; Flags: ignoreversion
Source: 1.ico; DestDir: {app}; Flags: ignoreversion
Source: 2.ico; DestDir: {app}; Flags: ignoreversion
Source: {app}\{#AIDA641}\*; DestDir: {app}\{#AIDA641}; Flags: ignoreversion recursesubdirs createallsubdirs; Components: AIDA641;
Source: {app}\{#AIDA642}\*; DestDir: {app}\{#AIDA642}; Flags: ignoreversion recursesubdirs createallsubdirs; Components: AIDA642;
; Примечание: Не используйте "Flags: ignoreversion" для системных файлов

[Icons]
Name: {group}\{#AIDA641}\{#AIDA641}; Filename: {app}\{#AIDA641}\{#AIDA64EXE1}; Components: AIDA641;
Name: {group}\{#AIDA642}\{#AIDA642}; Filename: {app}\{#AIDA642}\{#AIDA64EXE2}; Components: AIDA642;
Name: {group}\{#AIDA641}\{cm:UninstallProgram,{#AIDA641}}; Filename: {uninstallexe}; Components: AIDA641; IconFilename: {app}\1.ico;
Name: {group}\{#AIDA642}\{cm:UninstallProgram,{#AIDA642}}; Filename: {uninstallexe}; Components: AIDA642; IconFilename: {app}\2.ico;
Name: {group}\{#AIDA641}\Сайт {#MyAppName}; Filename: {#MyAppURL}; Components: AIDA641;
Name: {group}\{#AIDA642}\Сайт {#MyAppName}; Filename: {#MyAppURL}; Components: AIDA642;
Name: {group}\{#AIDA641}\Справка {#AIDA641}; Filename: {app}\{#AIDA641}\aida64.chm; Components: AIDA641;
Name: {group}\{#AIDA642}\Справка {#AIDA642}; Filename: {app}\{#AIDA642}\aida64.chm; Components: AIDA642;
Name: {commondesktop}\{#AIDA641}; Filename: {app}\{#AIDA641}\{#AIDA64EXE1}; Tasks: icons\desktop; Components: AIDA641;
Name: {commondesktop}\{#AIDA642}; Filename: {app}\{#AIDA642}\{#AIDA64EXE2}; Tasks: icons\desktop; Components: AIDA642;
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AIDA641}; Filename: {app}\{#AIDA641}\{#AIDA64EXE1}; Tasks: icons\quicklaunchicon; Components: AIDA641;
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AIDA642}; Filename: {app}\{#AIDA642}\{#AIDA64EXE2}; Tasks: icons\quicklaunchicon; Components: AIDA642;

[Run]
Filename: {app}\{#AIDA641}\{#AIDA64EXE1}; Description: "{cm:LaunchProgram,{#StringChange(AIDA641, '&', '&&')}}"; Flags: nowait postinstall skipifsilent Unchecked; Components: AIDA641;
Filename: {app}\{#AIDA642}\{#AIDA64EXE2}; Description: "{cm:LaunchProgram,{#StringChange(AIDA642, '&', '&&')}}"; Flags: nowait postinstall skipifsilent Unchecked; Components: AIDA642;

[Messages]
BeveledLabel=RePack by {#AuthRep}

[Code]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.

function OnShouldSkipPage(Sender: TWizardPage): Boolean;
begin
if WizardForm.ComponentsList.Items.Count > 0 then WizardForm.Tag:= 1; // отображаются страницы выбора папки и компонентов
end;

procedure RedesignWizardForm;
begin
with WizardForm.ComponentsList do
begin
Top := ScaleY(50);
Height := ScaleY(155);
end;

{ ReservationBegin }
// Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!
const
RT_RCDATA = 10;

var
TDV: TFolderTreeView;
TFV: TStartMenuFolderTreeView;
ResultCode: Integer;
lPLogo, bPicHandle, bPicHandle2, lPicHandle: THandle;
BtnImage: TBitmapImage;

function GetFromRes(const ResName, SaveFileName: String): Boolean;
var
lResStream: TResourceStream;
begin
lResStream := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
try
lResStream.SaveToFile(ExpandConstant('{tmp}\') + SaveFileName);
finally
lResStream.Free;
Result := FileExists(ExpandConstant('{tmp}\') + SaveFileName);
end;
end;

procedure TDVOnChange(Sender: TObject);
begin
WizardForm.DirEdit.Text:= AddBackslash(TDV.Directory)+'{#MyAppName}';
end;

procedure TFVOnChange(Sender: TObject);
begin
WizardForm.GroupEdit.Text:= AddBackslash(TFV.Directory)+'{#MyAppName}';
end;

function InitializeSetup:boolean;
begin
if not FileExists(ExpandConstant('{tmp}\WinTB.dll')) then ExtractTemporaryFile('WinTB.dll');
Result:=True;
end;

procedure InitializeWizard;
begin
RedesignWizardForm;
WizardForm.TypesCombo.hide;
PageFromID(wpSelectDir).OnShouldSkipPage:= @OnShouldSkipPage;
with WizardForm do
begin
if GetFromRes('_IS_BOTVA', 'botva2.dll') and GetFromRes('_IS_B2P', 'b2p.dll') and GetFromRes('_IS_LOGO', 'logo.png') and GetFromRes('_IS_BPIC', 'bPic.png') and GetFromRes('_IS_LIPIC', 'LiPic.png') and GetFromRes('_IS_APIC', 'aPic.png') then
begin
bPicHandle := ImgLoad(WelcomePage.Handle, ExpandConstant('{tmp}\aPic.png'), WizardBitmapImage.Left, WizardBitmapImage.Top, WizardBitmapImage.Width, WizardBitmapImage.Height, True, True);
WizardBitmapImage.Hide;
ImgSetVisibility(bPicHandle, True);
ImgApplyChanges(WelcomePage.Handle);

bPicHandle := ImgLoad(FinishedPage.Handle, ExpandConstant('{tmp}\bPic.png'), WizardBitmapImage2.Left, WizardBitmapImage2.Top, WizardBitmapImage2.Width, WizardBitmapImage2.Height, True, True);
WizardBitmapImage2.Hide;
ImgSetVisibility(bPicHandle, True);
ImgApplyChanges(FinishedPage.Handle);

lPicHandle := ImgLoad(MainPanel.Handle, ExpandConstant('{tmp}\LiPic.png'), WizardSmallBitmapImage.Left, WizardSmallBitmapImage.Top, WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, True);
WizardSmallBitmapImage.Hide;
ImgSetVisibility(lPicHandle, True);
ImgApplyChanges(MainPanel.Handle);

lPLogo:= ImgLoad(WizardForm.Handle, ExpandConstant('{tmp}\logo.png'), ScaleX(20), ScaleY(320), ScaleX(126), ScaleY(38), True, True);
ImgApplyChanges(WizardForm.Handle);
end;

SetTaskBarProgressValue(0, 60);
SetTaskBarProgressState(0, TBPF_ERROR);
TaskBarV10(MainForm.Handle, WizardForm.Handle, false, false, 0, 0, _m_);

TDV:= TFolderTreeView.Create(WizardForm);
TDV.Top:= WizardForm.DirEdit.Top+28;
TDV.Width:= 417;
TDV.Height:= 100;
TDV.OnChange:= @TDVOnChange;
TDV.Parent:= WizardForm.SelectDirPage;

TFV:= TStartMenuFolderTreeView.Create(nil);
TFV.Top:= WizardForm.GroupEdit.Top+28;
TFV.Width:= 417;
TFV.Height:= 100;
TFV.SetPaths(ExpandConstant('{userprograms}'),ExpandConstant('{commonprograms}'),ExpandConstant('{us erstartup}'),ExpandConstant('{commonstartup}'));
TFV.OnChange:= @TFVOnChange;
TFV.Parent:= WizardForm.SelectProgramGroupPage;

with TLabel.Create(WizardForm) do
begin
Parent:=WizardForm;
AutoSize:=False;
Transparent:= true;
SetBounds(ScaleX(20), ScaleY(320), ScaleX(126), ScaleY(38));
end;
end;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectDir: if WizardForm.Tag = 1 then
begin
WizardForm.SelectDirPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectComponents);
WizardForm.Hint:= WizardForm.PageDescriptionLabel.Caption; // запомнить SetupMessage(msgSelectDirDesc)
WizardForm.PageDescriptionLabel.Caption:= SetupMessage(msgSelectComponentsDesc);
end;
wpSelectComponents: if WizardForm.Tag = 1 then
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectDirPage;
WizardForm.DiskSpaceLabel.Caption:= WizardForm.ComponentsDiskSpaceLabel.Caption;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectDir);
WizardForm.PageDescriptionLabel.Caption:= WizardForm.Hint; // иначе вместо названия программы [name]
if IsComponentSelected('AIDA641') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA641}';
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA641}';
end else
if IsComponentSelected('AIDA642') then
begin
WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA642}'
WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA642}'
end;
end;
end;
end;

procedure DeinitializeSetup();
begin
gdipShutdown;
TaskBarDestroy;
end;

procedure InitializeUninstallProgressForm;
begin
with UninstallProgressForm do
begin
if GetFromRes('_IS_BOTVA', 'botva2.dll') and GetFromRes('_IS_B2P', 'b2p.dll') and GetFromRes('_IS_LOGO', 'logo.png') and GetFromRes('_IS_LIPIC', 'LIPic.png') then
begin
lPicHandle := ImgLoad(MainPanel.Handle, ExpandConstant('{tmp}\LiPic.png'), WizardSmallBitmapImage.Left, WizardSmallBitmapImage.Top, WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, True);
WizardSmallBitmapImage.Hide;
ImgSetVisibility(lPicHandle, True);
ImgApplyChanges(MainPanel.Handle);

lPLogo:= ImgLoad(UninstallProgressForm.Handle, ExpandConstant('{tmp}\logo.png'), ScaleX(20), ScaleY(320), ScaleX(126), ScaleY(38), True, True);
ImgApplyChanges(UninstallProgressForm.Handle);
end;

with TLabel.Create(nil) do
begin
Parent:=UninstallProgressForm;
AutoSize:=False;
Transparent:= true;
SetBounds(ScaleX(20), ScaleY(320), ScaleX(126), ScaleY(38));
end;
end;
end;

procedure DeinitializeUninstall();
begin
gdipShutdown;
end;

[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030106402000054504630F10B5457697A617264466F726D0A57697A61726 4466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C656674020 00B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010 D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724 E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C6963697457696 4746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E65725 06167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F74656 26F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650D4 578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B5 06167651453656C656374436F6D706F6E656E7473506167650D4578706C69636974576964746803A1010E4578706C6963697 448656967687403ED0000F110544E6577436865636B4C697374426F780E436F6D706F6E656E74734C69737403546F7002320 6486569676874039B000B4578706C69636974546F7002320E4578706C69636974486569676874039B000000F10C544E65774 36F6D626F426F780A5479706573436F6D626F0A4974656D486569676874020D00000000000000

habib2302
08-04-2013, 12:20
помогите мне объеденить эти 2 скрипта в один

[....code]
function OnShouldSkipPage(Sender: TWizardPage): Boolean;
begin
if WizardForm.ComponentsList.Items.Count > 0 then WizardForm.Tag:= 1; // отображаются страницы выбора папки и компонентов
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectDir: if WizardForm.Tag = 1 then
begin
WizardForm.SelectDirPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectComponents)
WizardForm.Hint:= WizardForm.PageDescriptionLabel.Caption; // запомнить SetupMessage(msgSelectDirDesc)
WizardForm.PageDescriptionLabel.Caption:= SetupMessage(msgSelectComponentsDesc)
end;
wpSelectComponents: if WizardForm.Tag = 1 then
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectDirPage;
WizardForm.DiskSpaceLabel.Caption:= WizardForm.ComponentsDiskSpaceLabel.Caption;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectDir)
WizardForm.PageDescriptionLabel.Caption:= WizardForm.Hint // иначе вместо названия программы [name]
end;
end;
End;

Procedure InitializeWizard;
Begin
PageFromID(wpSelectDir).OnShouldSkipPage:= @OnShouldSkipPage
end;


procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectDir:
begin
if IsComponentSelected('AIDA641') then WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA641}'
else WizardForm.DirEdit.Text := ExpandConstant('{#SetupSetting("DefaultDirName")}');
if IsComponentSelected('AIDA642') then WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + '{#AIDA642}'
else WizardForm.DirEdit.Text := ExpandConstant('{#SetupSetting("DefaultDirName")}');
end;
wpSelectProgramGroup:
begin
if IsComponentSelected('AIDA641') then WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA641}'
else WizardForm.GroupEdit.Text := ExpandConstant('{#SetupSetting("DefaultGroupName")}');
if IsComponentSelected('AIDA642') then WizardForm.GroupEdit.Text := AddBackslash(ExpandConstant('{#SetupSetting("DefaultGroupName")}')) + '{#AIDA642}'
else WizardForm.GroupEdit.Text := ExpandConstant('{#SetupSetting("DefaultGroupName")}');
end ;
end;
end;

nik1967
08-04-2013, 12:28
habib2302, а выше скрипт посмотреть - религия не позволяет? Я для кого скрипт выложил?




© OSzone.net 2001-2012