Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
Habetdin
11-08-2014, 23:19
odminius, на stackoverflow (http://stackoverflow.com/a/13246430) пишут, что данный способ не работает из-за отсутствия меню "Пуск" в Windows 8 (что логично) и рекомендуют прописывать программы в реестр.
[Registry]
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "{#MyAppName}"; ValueData: "{app}\{#MyAppExeName}"
Imperor, а чем должна была помочь смена общей автозагрузки на сею же, только для текущего пользователя? :tomato2:
Habetdin, хз, я думал в этом причина. Все константы, которые прописывал работали одинаково и на 7 и на 8.
Вы разбираетесь в прогресс барах для isdone? Несколькими сообщениями ранее я выложил код, можете подсказать почему прогресс бар отображается, но не движется? Что там нужно исправить? Уже всё перепробовал, ничего не помогло.
ISDoneProgressBar1 :=ImgPBCreate(WizardForm.Handle, ExpandConstant('{tmp}\pbbkg.png'), ExpandConstant('{tmp}\pb.png'),7,430,646, 4);
Путь к ресурсам прогресс бара указал, ошибок это не вызвало, но всё-равно не отображается ход установки. :lamer: :gulp:
Вся работа на этом встала, перерыл весь инет в поисках решения - ничего. Isdone 0.6 final. Не понимаю, всё ведь правильно прописано, почему не работает? :shot:
odminius
12-08-2014, 14:28
Habetdin, Imperor, Спасибо огромное, за помощь, зря Вас потревожил. Наши криворукие "тестировщики" просто не смогли найти ярлык в папке автозагрузки (или саму папку) на win 8, и сказали что нифига не работает. Сюрприз был сегодня утром, когда программулина как надо, после старта винды показала всем приветственные окошки :biggrin: .
Всем еще раз спасибо за помосч)
AlekseyPopovv
12-08-2014, 15:31
Ребята помогите решить проблему: скрипт собирается, файл запускается всё устанавливается. Ошибка возникает при удалении после окошка "Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.". Скрипт на две программы (Beauty.Checked и Brightness.Checked). Как решить эту проблему?
[Messages]
UninstalledAll=Нажмите кнопку "OK" и удалите не нужные Вам параметры программы {#MyAppName} {#MyAppVersion}.
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Beauty Guide');
if Beauty.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Beauty Guide');
if Beauty.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить Ваши настройки Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DelTree(ExpandConstant('{userappdata}\BeautyGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Удалить плагины Beauty Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Beauty.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BeautyGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BeautyGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Beauty.Checked then
if MsgBox('Программа {#MyAppNameBeauty} {#MyAppBeautyVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'bmp_auto_file\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'jpegfile\shell\Brightness Guide');
if Brightness.Checked then
RegDeleteKeyIncludingSubkeys(HKCR, 'pngfile\shell\Brightness Guide');
if Brightness.Checked then
RemoveDir(ExpandConstant('{group}'));
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить Ваши настройки Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DelTree(ExpandConstant('{userappdata}\BrightnessGuide'), True, True, True);
end;
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Удалить плагины Brightness Guide?',mbconfirmation, mb_yesno) = IDYES then
begin
if Brightness.Checked then
DeleteFile(ExpandConstant('{pf32}\Tint Guide\Photo Plugins\BrightnessGuidePlugin.8bf'));
DeleteFile(ExpandConstant('{pf}\Tint Guide\Photo Plugins64\BrightnessGuidePlugin64.8bf'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide\Photo Plugins'));
RemoveDir(ExpandConstant('{pf32}\Tint Guide'));
RemoveDir(ExpandConstant('{pf}\Tint Guide\Photo Plugins64'));
RemoveDir(ExpandConstant('{pf}\Tint Guide'));
begin
if (CurUninstallStep = usDone) then
begin
if Brightness.Checked then
if MsgBox('Программа {#MyAppNameBrightness} {#MyAppBrightnessVersion} удалена!',mbconfirmation, mb_ok) = IDYES then
end;
end;
end;
end;
end;
end;
end;
end;
Помогите! Второй день сижу в ожидание чуда( Не отображается ход прогресс бара...
Модуль ProgressBar.iss
type
TImgPB = record h: HWND; Left, Top, Width, Height, MaxWidth: Integer; img1, img2: Longint; end;
function ImgPBCreate(hParent: HWND; bk, pb: AnsiString; Left, Top, Width, Height: Integer): TImgPB;
begin
Result.Left:=Left;
Result.Top:=Top;
Result.Width:=0;
Result.Height:=Height;
Result.MaxWidth:=Width;
Result.h:= hParent;
if Length(pb)>0 then Result.img1:=ImgLoad(hParent, pb, Result.Left, Result.Top, 0, Result.Height, True,True) else Result.img1:= 0;
if Length(bk)>0 then Result.img2:=ImgLoad(hParent, bk, Left, Top, Width, Height, True, True) else Result.img2:=0;
ImgApplyChanges(Result.h);
end;
procedure ImgPBSetPosition(PB: TImgPB; Percent: Extended);
var
NewWidth: Integer;
begin
if PB.img1<>0 then begin
NewWidth:=Round(PB.MaxWidth*Percent/1000);
if PB.Width<>NewWidth then begin
PB.Width:=NewWidth;
ImgSetPosition(PB.img1,PB.Left,PB.Top,PB.Width,PB.Height);
ImgSetVisiblePart(PB.img1, ScaleX(0), ScaleY(0), ScaleX(PB.Width), ScaleY(PB.Height));
ImgApplyChanges(PB.h);
end;
end;
end;
procedure ImgPBDelete(PB: TImgPB);
begin
if PB.img1<>0 then ImgRelease(PB.img1);
if PB.img2<>0 then ImgRelease(PB.img2);
PB.img1:=0;
PB.img2:=0;
ImgApplyChanges(PB.h);
end;
procedure ImgPBVisibility(var PB :TImgPB; Visible :boolean);
begin
ImgSetVisibility(PB.img1,Visible);
ImgSetVisibility(PB.img2,Visible);
end;
Модуль ISDone:
[Files]
Source: Include\English.ini; DestDir: {tmp}; Flags: dontcopy
Source: Include\Russian.ini; DestDir: {tmp}; Flags: dontcopy
Source: Include\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\ISDone.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: records.inf; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PrecompInside
Source: Include\CLS-precomp.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packjpg_dll1.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef SrepInside
Source: Include\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef MSCInside
Source: Include\CLS-MSC.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef facompress
Source: Include\facompress.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef precomp
#if precomp == "0.38"
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.4"
Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.41"
Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.42"
Source: Include\precomp042.exe; DestDir: {tmp}; Flags: dontcopy
#else
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp042.exe; DestDir: {tmp}; Flags: dontcopy
#endif
#endif
#endif
#endif
#endif
#ifdef unrar
Source: Include\Unrar.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef XDelta
Source: Include\XDelta3.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PackZIP
Source: Include\7z.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packZIP.exe; DestDir: {tmp}; Flags: dontcopy
#endif
(code)
type
TCallback = function (OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
const
PCFonFLY=true;
notPCFonFLY=false;
var
LabelPct1,LabelCurrFileName,LabelTime1,LabelTime2,LabelTime3: TLabel;
ISDoneProgressBar1: TImgPB;
ISDoneCancel:integer;
ISDoneError:boolean;
PCFVer:double;
function WrapCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:ISDone.dll stdcall delayload';
function ISArcExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile:boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: boolean ):boolean; external 'ISArcExtract@files:ISDone.dll stdcall delayload';
function IS7ZipExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'IS7zipExtract@files:ISDone.dll stdcall delayload';
function ISRarExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'ISRarExtract@files:ISDone.dll stdcall delayload';
function ISPrecompExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISPrecompExtract@files:ISDone.dll stdcall delayload';
function ISSRepExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString; DeleteInFile:boolean):boolean; external 'ISSrepExtract@files:ISDone.dll stdcall delayload';
function ISxDeltaExtract(CurComponent:Cardinal; PctOfTotal:double; minRAM,maxRAM:integer; InName, DiffFile, OutFile: AnsiString; DeleteInFile, DeleteDiffFile:boolean):boolean; external 'ISxDeltaExtract@files:ISDone.dll stdcall delayload';
function ISPackZIP(CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: AnsiString;ComprLvl:integer; DeleteInFile:boolean):boolean; external 'ISPackZIP@files:ISDone.dll stdcall delayload';
function ShowChangeDiskWindow(Text, DefaultPath, SearchFile:AnsiString):boolean; external 'ShowChangeDiskWindow@files:ISDone.dll stdcall delayload';
function Exec2 (FileName, Param: PAnsiChar;Show:boolean):boolean; external 'Exec2@files:ISDone.dll stdcall delayload';
function ISFindFiles(CurComponent:Cardinal; FileMask:AnsiString; var ColFiles:integer):integer; external 'ISFindFiles@files:ISDone.dll stdcall delayload';
function ISPickFilename(FindHandle:integer; OutPath:AnsiString; var CurIndex:integer; DeleteInFile:boolean):boolean; external 'ISPickFilename@files:ISDone.dll stdcall delayload';
function ISGetName(TypeStr:integer):PAnsichar; external 'ISGetName@files:ISDone.dll stdcall delayload';
function ISFindFree(FindHandle:integer):boolean; external 'ISFindFree@files:ISDone.dll stdcall delayload';
function ISExec(CurComponent:Cardinal; PctOfTotal,SpecifiedProcessTime:double; ExeName,Parameters,TargetDir,OutputStr:AnsiString;Show:boolean):boolean; external 'ISExec@files:ISDone.dll stdcall delayload';
function SrepInit(TmpPath:PAnsiChar;VirtMem,MaxSave:Cardinal):boolean; external 'SrepInit@files:ISDone.dll stdcall delayload';
function PrecompInit(TmpPath:PAnsiChar;VirtMem:cardinal;PrecompVers:single):boolean; external 'PrecompInit@files:ISDone.dll stdcall delayload';
function FileSearchInit(RecursiveSubDir:boolean):boolean; external 'FileSearchInit@files:ISDone.dll stdcall delayload';
function ISDoneInit(RecordFileName:AnsiString; TimeType,Comp1,Comp2,Comp3:Cardinal; WinHandle, NeededMem:longint; callback:TCallback):boolean; external 'ISDoneInit@files:ISDone.dll stdcall';
function ISDoneStop:boolean; external 'ISDoneStop@files:ISDone.dll stdcall';
function ChangeLanguage(Language:AnsiString):boolean; external 'ChangeLanguage@files:ISDone.dll stdcall delayload';
function SuspendProc:boolean; external 'SuspendProc@files:ISDone.dll stdcall';
function ResumeProc:boolean; external 'ResumeProc@files:ISDone.dll stdcall';
function ProgressCallback(OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
begin
if OveralPct<=1000 then ImgPBSetPosition(ISDoneProgressBar1,OveralPct);
LabelPct1.Caption := IntToStr(OveralPct div 10)+'.'+chr(48 + OveralPct mod 10)+'%';
LabelCurrFileName.Caption:=ExpandConstant('{cm:ExtractedFile} ')+MinimizePathName(CurrentFile, LabelCurrFileName.Font, LabelCurrFileName.Width-ScaleX(100));
Result := ISDoneCancel;
ImgApplyChanges(WizardForm.Handle);
end;
procedure CancelButtonOnClick(Sender: TObject);
begin
SuspendProc;
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then ISDoneCancel:=1;
ResumeProc;
end;
procedure IsDoneAddComponents();
var PBTop:integer;
begin
PBTop:=ScaleY(50);
ISDoneProgressBar1:=ImgPBCreate(WizardForm.Handle, ExpandConstant('{tmp}\pbbkg.png'), ExpandConstant('{tmp}\pb.png'),7,430,646, 4);
LabelPct1 := TLabel.Create(WizardForm);
with LabelPct1 do begin
Parent := WizardForm;
Font.Name := 'Arial';
Font.Size := 10;
Font.Style := [fsBold];
Transparent := true;
Font.Color := $e1cc70;
AutoSize := False;
Left := ScaleX(540);
Top := ScaleY(255);
Width := ScaleX(180);
end;
LabelCurrFileName := TLabel.Create(WizardForm);
with LabelCurrFileName do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := ISDoneProgressBar1.Width+ScaleX(30);
Left := ScaleX(0);
Top := ScaleY(30);
end;
LabelTime1 := TLabel.Create(WizardForm);
with LabelTime1 do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := ISDoneProgressBar1.Width div 2;
Left := ScaleX(0);
Top := PBTop + ScaleY(35);
end;
LabelTime2 := TLabel.Create(WizardForm);
with LabelTime2 do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := LabelTime1.Width+ScaleX(40);
Left := ISDoneProgressBar1.Width div 2;
Top := LabelTime1.Top;
end;
LabelTime3 := TLabel.Create(WizardForm);
with LabelTime3 do begin
Parent := WizardForm.FinishedPage;
AutoSize := False;
Width := 300;
Left := 180;
Top := 200;
end;
end;
procedure IsDoneHide();
begin
LabelPct1.Hide;
LabelCurrFileName.Hide;
LabelTime1.Hide;
LabelTime2.Hide;
LabelTime3.Hide;
ImgPBVisibility(ISDoneProgressBar1, False);
end;
procedure IsDoneShow();
begin
LabelPct1.Show;
LabelCurrFileName.Show;
LabelTime1.Show;
LabelTime2.Show;
ImgPBVisibility(ISDoneProgressBar1, true);
end;
procedure IsDoneUnpack(CurStep: TSetupStep);
var
Comps1,Comps2,Comps3, TmpValue:cardinal;
FindHandle1,ColFiles1,CurIndex1,tmp:integer;
ExecError:boolean;
InFilePath,OutFilePath,OutFileName:PAnsiChar;
begin
if CurStep = ssInstall then begin //Если необходимо, можно поменять на ssPostInstall
WizardForm.ProgressGauge.Hide;
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
ISDoneCancel:=0;
// Распаковка всех необходимых файлов в папку {tmp}.
ExtractTemporaryFile('unarc.dll');
#ifdef PrecompInside
ExtractTemporaryFile('CLS-precomp.dll');
ExtractTemporaryFile('packjpg_dll.dll');
ExtractTemporaryFile('packjpg_dll1.dll');
ExtractTemporaryFile('precomp.exe');
ExtractTemporaryFile('zlib1.dll');
#endif
#ifdef SrepInside
ExtractTemporaryFile('CLS-srep.dll');
#endif
#ifdef MSCInside
ExtractTemporaryFile('CLS-MSC.dll');
#endif
#ifdef facompress
ExtractTemporaryFile('facompress.dll'); //ускоряет распаковку .arc архивов.
#endif
#ifdef records
ExtractTemporaryFile('records.inf');
#endif
#ifdef precomp
#if precomp == "0.38"
ExtractTemporaryFile('precomp038.exe');
#else
#if precomp == "0.4"
ExtractTemporaryFile('precomp040.exe');
#else
#if precomp == "0.41"
ExtractTemporaryFile('precomp041.exe');
#else
#if precomp == "0.42"
ExtractTemporaryFile('precomp042.exe');
#else
ExtractTemporaryFile('precomp038.exe');
ExtractTemporaryFile('precomp040.exe');
ExtractTemporaryFile('precomp041.exe');
ExtractTemporaryFile('precomp042.exe');
#endif
#endif
#endif
#endif
#endif
#ifdef unrar
ExtractTemporaryFile('Unrar.dll');
#endif
#ifdef XDelta
ExtractTemporaryFile('XDelta3.dll');
#endif
#ifdef PackZIP
ExtractTemporaryFile('7z.dll');
ExtractTemporaryFile('PackZIP.exe');
#endif
ExtractTemporaryFile('English.ini');
ExtractTemporaryFile('Russian.ini');
// Подготавливаем переменную, содержащую всю информацию о выделенных компонентах для ISDone.dll
// максимум 96 компонентов.
Comps1:=0; Comps2:=0; Comps3:=0;
#ifdef Components
TmpValue:=1;
if BtnGetChecked(LanguagetextButton[1]) then Comps1:=Comps1+TmpValue; //компонент 1
TmpValue:=TmpValue*2;
if BtnGetChecked(LanguagetextButton[2]) then Comps1:=Comps1+TmpValue; //компонент 2
TmpValue:=TmpValue*2;
if BtnGetChecked(LanguagevoiceButton[1]) then Comps1:=Comps1+TmpValue; //компонент 3
TmpValue:=TmpValue*2;
if BtnGetChecked(LanguagevoiceButton[2]) then Comps1:=Comps1+TmpValue; //компонент 4
#endif
#ifdef precomp
PCFVer:={#precomp};
#else
PCFVer:=0;
#endif
ISDoneError:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
repeat
case ActiveLanguage of
'eng': ChangeLanguage('English');
'rus': ChangeLanguage('Russian');
end;
if not SrepInit('',512,0) then break;
if not PrecompInit('',128,PCFVer) then break;
if not FileSearchInit(true) then break;
#ifdef Data1
if not ISArcExtract ( 0, 20, ExpandConstant('{src}\{#Data1}'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
#endif
#ifdef Data2
if not ISArcExtract ( 0, 20, ExpandConstant('{src}\{#Data2}'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
#endif
#ifdef Data3
if not ISArcExtract ( 0, 20, ExpandConstant('{src}\{#Data3}'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
#endif
#ifdef Data4
if not ISArcExtract ( 0, 20, ExpandConstant('{src}\{#Data4}'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
#endif
#ifdef Data5
if not ISArcExtract ( 0, 20, ExpandConstant('{src}\{#Data5}'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
#endif
// далее находятся закомментированые примеры различных функций распаковки (чтобы каждый раз не лазить в справку за примерами)
(*
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\arc.arc'), ExpandConstant('{app}\'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\CODMW2.7z'), ExpandConstant('{app}\data1'), false, '') then break;
if not ISRarExtract ( 0, 0, ExpandConstant('{src}\data_*.rar'), ExpandConstant('{app}'), false, '') then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\data1024_1024.srep'),ExpandConstant('{app}\data1024.arc'), true) then break;
if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\data.pcf'), ExpandConstant('{app}\data.7z'), true) then break;
if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{app}\in.pcf'), ExpandConstant('{app}\*.diff'), ExpandConstant('{app}\out.dat'), false, false) then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\1a1\*'), ExpandConstant('{app}\1a1.pak'), 2, false ) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\Arc.exe'), ExpandConstant('x -o+ "{src}\001.arc" "{app}\"'), ExpandConstant('{tmp}'), '...',false) then break;
if not ShowChangeDiskWindow ('Пожалуйста, вставьте второй диск и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW_2.arc') then break;
// распаковка группы файлов посредством внешнего приложения
FindHandle1:=ISFindFiles(0,ExpandConstant('{app}\*.ogg'),ColFiles1);
ExecError:=false;
while not ExecError and ISPickFilename(FindHandle1,ExpandConstant('{app}\'),CurIndex1,true) do begin
InFilePath:=ISGetName(0);
OutFilePath:=ISGetName(1);
OutFileName:=ISGetName(2);
ExecError:=not ISExec(0, 0, 0, ExpandConstant('{tmp}\oggdec.exe'), '"'+InFilePath+'" -w "'+OutFilePath+'"',ExpandConstant('{tmp}'),OutFileName,false);
end;
ISFindFree(FindHandle1);
if ExecError then break;
*)
ISDoneError:=false;
until true;
ISDoneStop;
end;
end;
if (CurStep=ssPostInstall) and ISDoneError then begin
IsDoneHide;
BtnSetEnabled(hCancelBtn, False);
ImgApplyChanges(WizardForm.Handle);
ImgApplyChanges(WizardForm.Handle);
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;
Это часть скрипта, в котором я уверен сидит ошибка! :lamer:
Dodakaedr
12-08-2014, 20:42
Imperor, возьмите ваше сообщение в тег и занесите под спойлер. Прогресс бар не показывает, потому что он скрыт. Нужно изменить родителя [CODE]with WizardForm.ProgressGauge do
begin
Parent:=WizardForm;
SetBounds(ScaleX(108),ScaleY(283),ScaleX(488),ScaleY(15));
end;
потом скрыть в процедуре HideComponents procedure HideComponents;
begin;
WizardForm.ProgressGauge.Hide;
end;
а в процедуре ShowComponents(CurPageID: Integer) показать procedure ShowComponents(CurPageID: Integer);
begin
case CurPageID of
wpInstalling:
begin
WizardForm.ProgressGauge.Show;
end;
end;
end;
Инфо в общих чертах, все зависит от самого скрипта
Dodakaedr, вы не правильно меня поняли. Прогресс бар отображается, но загрузка в нем не отображается. Сама установка идет как положено.
Прогресс бар Isdone'ий, такие хитрости с ним не прокатят.
Модуль ProgressBar.iss задействует модуль Isdone.iss b всё это под командованием основного скрипта, на который смысла смотреть нету. так как там только прописаны две строки, которые задействуют эти модули.
В ProgressBar лежат ссылки на png файлы прогресс бара, первый отображает его шаблон, второй ход процесса загрузки. Второй почему то не отображается. Я голову ломаю над этим, никак не помогу выяснить причину. Могу скинуть весь скрипт целиком, если есть желание помочь разобраться. Так то скрипт закончен, только вот эта визуальная неувязочка не даёт мне покоя(
Imperor, Сами посудите: Если вам лень что либо читать, то каково тем кто может вам помочь: создавать картинки, искать аналогичные скрипты, подставлять скины, музыку - в общем полностью подстраиваться под ваше чудо-творение.
Поверьте, тем кто вам может помочь - это абсолютно ненужно. Помогать таким людям не будут: Будут просто игнорировать.
Ведь перед выкладыванием чего либо нужно проверить, чтоб не было ошибок. Правильно?
Тогда нужно представлять все файлы.
И ещё раз: вы не читаете.
Это:
Цитата sergey3695:
кидай-те скрипты с файлами. »
написано для всех. Подчеркну если не заметили: с файлами »
nik1967, нету ошибок, есть только проблема с прогресс баром. Вот весь мой скрипт(с файлами). http://rghost.ru/57434129
Есть отдельно модулем прогресс-бар, думаю там где-то что-то не так прописано.
Если лень оказать услугу за просто так, то просто сразу так и скажите, я могу и заплатить(в пределах разумного конечно) раз уж на то пошло.
Если лень оказать услугу за просто так, то просто сразу так и скажите »
Imperor, Лень значит? Всё ясно.
Ненужно давить. (Как это говориться?): "Брать на понт" (Если не ошибаюсь) - тоже ненужно.
Раз на то дело пошло: мистер, вы темой ошиблись.
Нужно учитывать то, что не все пользуются "ISDone", а значит в идеале - с этим мало знакомы (т.е ISDone использовали как есть с меньшими изменениями) или не знакомы (т.е не пользовались).
Так же нужно учесть что у людей может не быть как времени, так и желания.
На сколько известно, автор: Profrager. Довольно позволительно предположить что автор более грамотен в данной сфере.
Проявите терпение. Не хотите ждать, нужно срочно » сами сообразите куда направить вопрос.
Не знаете? Google (https://www.google.ru/).
Не получается найти или скажете что "не находит ничего"? Ложь. "Поиск всегда и везде работает - это просто вы не умеете пользоваться".
Как называется архив который вы скачали, не "ISDone0.6final"? Почему его название не использовать в поиске (https://www.google.ru/search?q=ISDone%200.6%20final)?
Исследовав ссылки в поисковике, пришёл к выводу:
ISDone 0.6 final (http://krinkels.org/resources/isdone.67/)
(в данном варианте, перейдите в Обсуждение (http://krinkels.org/threads/isdone.34/))
ISDone.dll (http://forum.ru-board.com/topic.cgi?forum=5&topic=34920&start=620)
Nordek, вас не понять, то вы про лень пользователей говорите, то за просто так вам лень помогать, ну я и предложил оплатить работу. В ответ я получаю сообщение, что я типо на вас "наезжаю" и "беру на понт")) Спасибо за тему, которую дали, там последнее сообщение в июне было. Может туда уже никто и не заглядывает с того месяца. Да и вообще сложно найти то, не зная чего. В моём случае нужна реальная помощь человека, который в этом разбирается. Если не можете помочь, лучше промолчите или найдите того, кто поможет. Это вам не в реестре стринги прописывать.
очень нужна помощь в создании инсталлятора, похожего нигде не нашел, сам тоже слабоват в написании скриптов, ни разу не программист, готов заплатить, напишите кто хорошо разбирается ICQ 693128042 или в личку
El Sanchez
13-08-2014, 10:46
В ProgressBar лежат ссылки на png файлы прогресс бара, первый отображает его шаблон, второй ход процесса загрузки. Второй почему то не отображается »
Imperor, давно б уже избавились бы от модульной системы скрипта, написали бы скрипт все в одном, попутно выкидывая килограммы неиспользуемого кода, а то отладку толком не сделать. В теле функции ImgPBCreate при получении дескриптора картинки прогрессбара (где Result.img1) значение последнего параметра IsBkg функции ImgLoad должно быть False.
Imperor, забыл добавить, что ещё и на ботве - а это важно. Как уже написал El Sanchez нужно поменять значение в модуле ProgressBar.iss с True на False:
с
if Length(pb)>0 then Result.img1:=ImgLoad(hParent, pb, Result.Left, Result.Top, 0, Result.Height, True, True) else Result.img1:= 0; на if Length(pb)>0 then Result.img1:=ImgLoad(hParent, pb, Result.Left, Result.Top, 0, Result.Height, True, False) else Result.img1:= 0;
Вот готовый вариант. (http://rghost.ru/57441582)
Ты видимо взял вариант с прогрессбаром из скрипта, где использовался прозрачный pbbkg.png. В таком случае (если pbbkg.png прозрачный) можно оставить значение True.
Если лень оказать услугу за просто так, то просто сразу так и скажите, я могу и заплатить(в пределах разумного конечно) раз уж на то пошло. »
Ну не такой уж я крахобор. Мне лень, просто лень. Когда бывает настроение, то помогаю, чем могу.
[hr]
zaza5, попробуй спросить в этой теме (http://krinkels.org/forums/kuplju-zakazhu.265/).
killer000
13-08-2014, 16:10
Привет помогите
как мне прицепить компоненты
http://s019.radikal.ru/i636/1408/6f/676bddf07596.jpg (http://s020.radikal.ru/i702/1408/02/40575a4ed1ba.jpg)
;InnoSetupVersion=5.5.0 (Unicode)
[Setup]
AppName=Autorun Organizer
AppVerName=Autorun Organizer 1.22
AppVersion=1.22
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\Autorun Organizer
DefaultGroupName=Autorun Organizer
UninstallDisplayIcon={app}\mischief.exe
UninstallDisplayName=Autorun Organizer 1.22 RePack
OutputBaseFilename=Autorun Organizer 1.22
Compression=lzma2/ultra64
Uninstallable=not IsComponentSelected('Portable')
DisableProgramGroupPage=yes
DisableReadyPage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
[Files]
Source: "{app}\AutorunOrganizer.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ChemtableStartupChecker.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\HardwareConstant.dll"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ProgramDataStorage.const"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Reg64Call.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Updater.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\UpdaterDll.dll"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Languages\Russian.sib"; DestDir: "{src}\Autorun Organizer Portable\Languages\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\images\line.gif"; DestDir: "{src}\Autorun Organizer Portable\Documentation\images\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_eng.htm"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_rus.htm"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\styles.css"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\AutorunOrganizer.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ChemtableStartupChecker.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\HardwareConstant.dll"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ProgramDataStorage.const"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Reg64Call.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Updater.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\UpdaterDll.dll"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Languages\Russian.sib"; DestDir: "{app}\Languages\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\images\line.gif"; DestDir: "{app}\Documentation\images\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_eng.htm"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_rus.htm"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\styles.css"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: embedded\descctrl.dll; Flags: dontcopy
[Run]
Filename: "{app}\AutorunOrganizer.exe"; Description: "{cm:LaunchProgram,Autorun Organizer}"; Components: Install; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait
[Icons]
Name: "{group}\{cm:LaunchProgram,Autorun Organizer}"; Filename: "{app}\AutorunOrganizer.exe"; Components: Install; Tasks: Group; MinVersion: 0.0,5.0;
Name: "{group}\{cm:UninstallProgram,Autorun Organizer}"; Filename: "{uninstallexe}"; Components: Install; Tasks: Group; MinVersion: 0.0,5.0;
Name: "{userdesktop}\{cm:LaunchProgram,Autorun Organizer}"; Filename: "{app}\AutorunOrganizer.exe"; Components: Install; Tasks: Desktopicon; MinVersion: 0.0,5.0;
[Code]
const
LoremIpsum =
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin mauris ' +
'lorem, ullamcorper sit amet tincidunt ac, varius at ante. Aenean pretium, ' +
'tortor non congue pharetra, ante urna consectetur mi, vitae congue arcu est ' +
'eleifend nisl.';
LoremIpsum2 =
'Распаковка портативной версии (рядом с инсталлятором) ' +
'lorem, ullamcorper sit amet tincidunt ac, varius at ante. Aenean pretium, ' +
'tortor non congue pharetra, ante urna consectetur mi, vitae congue arcu est ' +
'eleifend nisl.';
procedure InitializeWizard;
var
CustomPage: TWizardPage;
StandardDescLabel: TLabel;
StandardRadioButton: TNewRadioButton;
AdvancedDescLabel: TLabel;
AdvancedRadioButton: TNewRadioButton;
begin
CustomPage := CreateCustomPage(wpWelcome, 'Тип установки', '');
StandardRadioButton := TNewRadioButton.Create(WizardForm);
StandardRadioButton.Parent := CustomPage.Surface;
StandardRadioButton.Checked := True;
StandardRadioButton.Top := 16;
StandardRadioButton.Width := CustomPage.SurfaceWidth;
StandardRadioButton.Font.Style := [fsBold];
StandardRadioButton.Font.Size := 9;
StandardRadioButton.Caption := 'Установка обычной версии'
StandardDescLabel := TLabel.Create(WizardForm);
StandardDescLabel.Parent := CustomPage.Surface;
StandardDescLabel.Left := 8;
StandardDescLabel.Top := StandardRadioButton.Top + StandardRadioButton.Height + 8;
StandardDescLabel.Width := CustomPage.SurfaceWidth;
StandardDescLabel.Height := 40;
StandardDescLabel.AutoSize := False;
StandardDescLabel.Wordwrap := True;
StandardDescLabel.Caption := LoremIpsum;
AdvancedRadioButton := TNewRadioButton.Create(WizardForm);
AdvancedRadioButton.Parent := CustomPage.Surface;
AdvancedRadioButton.Top := StandardDescLabel.Top + StandardDescLabel.Height + 16;
AdvancedRadioButton.Width := CustomPage.SurfaceWidth;
AdvancedRadioButton.Font.Style := [fsBold];
AdvancedRadioButton.Font.Size := 9;
AdvancedRadioButton.Caption := 'Распаковка портативной версии'
AdvancedDescLabel := TLabel.Create(WizardForm);
AdvancedDescLabel.Parent := CustomPage.Surface;
AdvancedDescLabel.Left := 8;
AdvancedDescLabel.Top := AdvancedRadioButton.Top + AdvancedRadioButton.Height + 8;
AdvancedDescLabel.Width := CustomPage.SurfaceWidth;
AdvancedDescLabel.Height := 40;
AdvancedDescLabel.AutoSize := False;
AdvancedDescLabel.Wordwrap := True;
AdvancedDescLabel.Caption := LoremIpsum2;
end;
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Components: "Install"; MinVersion: 0.0,5.0;
Name: "group"; Description: "{cm:Shortcut}"; GroupDescription: "{cm:AdditionalIcons}"; Components: "Install"; MinVersion: 0.0,5.0;
[Components]
Name: "install"; Description: "{cm:Install}"; Types: "full"; MinVersion: 0.0,5.0; Flags: exclusive
Name: "portable"; Description: "{cm:Portable}"; Types: "compact"; MinVersion: 0.0,5.0; Flags: exclusive
[Types]
Name: "full"; Description: "{cm:Install}"; MinVersion: 0.0,5.0;
Name: "compact"; Description: "{cm:Portable}"; MinVersion: 0.0,5.0;
[CustomMessages]
ru.NameAndVersion=%1, версия %2
ru.AdditionalIcons=Дополнительно:
ru.CreateDesktopIcon=Ярлык на &Рабочем столе
ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
ru.ProgramOnTheWeb=Сайт %1 в Интернете
ru.UninstallProgram=Удалить
ru.LaunchProgram=Запустить %1
ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
ru.AssocingFileExtension=Связывание %1 с файлами %2...
ru.AutoStartProgramGroupDescription=Автозапуск:
ru.AutoStartProgram=Автоматически запускать %1
ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
ru.Shortcut=Ярлыки в меню «Пуск»
ru.ContextMenu=Пункт контекстного меню
ru.Install=Установка обычной версии
ru.Portable=Распаковка портативной версии (рядом с инсталлятором)
[Languages]
; These files are stubs
; To achieve better results after recompilation, use the real language files
Name: "ru"; MessagesFile: "embedded\Russian.isl";
andy.zubov@vk
13-08-2014, 16:32
Ребята, порекомендуйте как лучше организовать следующее.
В программе около 20 компонентов (опций) каждая из которых не зависит от остальных. И каждая из этих опций добавляет в программу определенный функционал который бы хотелось отобразить в виде скриншота, т.е чтобы пользователь в выборе компонентов для установки мог увидеть текстовое описание и скриншот программы детализирующий эту самую опцию.
Сам выбор я уже давно сделал, интересует именно текстовое и графическое описание к компонентам, как это можно реализовать?
andy.zubov@vk, здесь (http://krinkels.org/threads/faq-po-inno-setup.7/page-3#post-21002). А так то про это много писали и в данной ветке. Пользуйтесь поиском.
killer000, не понял вопроса.
killer000
13-08-2014, 17:56
nik1967,
всё сделал по другому
есть другой вопрос
как скрыть DirPage при выбранном компоненте
хочу сделать что бы при обручной установки, можно было выбрать папку установки
а при распаковке паративки, скрыть выбор папки, чтобы сразу приступал к распаковке
http://s017.radikal.ru/i412/1408/a4/33c68cc6816d.jpg (http://s019.radikal.ru/i637/1408/8f/3154753e85c8.jpg)
http://s017.radikal.ru/i406/1408/05/a0d7c437a5c3.jpg (http://s017.radikal.ru/i407/1408/c7/ef64623a2bf0.jpg)
;InnoSetupVersion=5.5.0 (Unicode)
[Setup]
AppName=Autorun Organizer
AppVerName=Autorun Organizer 1.22
AppVersion=1.22
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\Autorun Organizer
DefaultGroupName=Autorun Organizer
UninstallDisplayIcon={app}\mischief.exe
UninstallDisplayName=Autorun Organizer 1.22 RePack
OutputBaseFilename=Autorun Organizer 1.22
Compression=lzma2/ultra64
Uninstallable=not IsComponentSelected('Portable')
DisableProgramGroupPage=yes
DisableReadyPage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
[Files]
Source: "{app}\AutorunOrganizer.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ChemtableStartupChecker.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\HardwareConstant.dll"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ProgramDataStorage.const"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Reg64Call.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Updater.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\UpdaterDll.dll"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Languages\Russian.sib"; DestDir: "{src}\Autorun Organizer Portable\Languages\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\images\line.gif"; DestDir: "{src}\Autorun Organizer Portable\Documentation\images\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_eng.htm"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_rus.htm"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\styles.css"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\AutorunOrganizer.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ChemtableStartupChecker.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\HardwareConstant.dll"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ProgramDataStorage.const"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Reg64Call.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Updater.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\UpdaterDll.dll"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Languages\Russian.sib"; DestDir: "{app}\Languages\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\images\line.gif"; DestDir: "{app}\Documentation\images\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_eng.htm"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_rus.htm"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\styles.css"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
[Run]
Filename: "{app}\AutorunOrganizer.exe"; Description: "{cm:LaunchProgram,Autorun Organizer}"; Components: Install; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait
[Icons]
Name: "{group}\{cm:LaunchProgram,Autorun Organizer}"; Filename: "{app}\AutorunOrganizer.exe"; Components: Install; Tasks: Group; MinVersion: 0.0,5.0;
Name: "{group}\{cm:UninstallProgram,Autorun Organizer}"; Filename: "{uninstallexe}"; Components: Install; Tasks: Group; MinVersion: 0.0,5.0;
Name: "{userdesktop}\{cm:LaunchProgram,Autorun Organizer}"; Filename: "{app}\AutorunOrganizer.exe"; Components: Install; Tasks: Desktopicon; MinVersion: 0.0,5.0;
[Code]
var
Components: TLabel; ComponentPage: TWizardPage;
SelectComponentsLabel: TLabel;
procedure InitializeWizard();
begin
ComponentPage := CreateCustomPage(wpLicense, 'Выбор компонентов',
'Какие компоненты должны быть установлены?');
WizardForm.DiskSpaceLabel.Hide
WizardForm.TypesCombo.Parent:= ComponentPage.Surface;
WizardForm.ComponentsList.Parent:= ComponentPage.Surface
WizardForm.ComponentsDiskSpaceLabel.Parent:= ComponentPage.Surface
WizardForm.TypesCombo.Parent:= ComponentPage.Surface;
WizardForm.TypesCombo.Top:= ScaleY(45)
WizardForm.ComponentsList.Top:= ScaleY(45)
WizardForm.ComponentsDiskSpaceLabel.Hide;
WizardForm.ComponentsList.Height := ScaleY(165);
SelectComponentsLabel:= TLabel.Create(WizardForm)
with SelectComponentsLabel do
begin
Left:= ScaleX(40);
Width:= WizardForm.SelectComponentsLabel.Width;
Height:= WizardForm.SelectComponentsLabel.Height;
Autosize:= false;
WordWrap:= true;
Transparent:= true;
Caption:= WizardForm.SelectComponentsLabel.Caption;
WizardForm.SelectComponentsLabel.Parent:= ComponentPage.Surface;
end
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = wpSelectComponents) then
Result:= True;
end;
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Components: "Install"; MinVersion: 0.0,5.0;
Name: "group"; Description: "{cm:Shortcut}"; GroupDescription: "{cm:AdditionalIcons}"; Components: "Install"; MinVersion: 0.0,5.0;
[Components]
Name: "install"; Description: "{cm:Install}"; Types: "custom"; MinVersion: 0.0,5.0; Flags: exclusive
Name: "portable"; Description: "{cm:Portable}"; Types: "custom"; MinVersion: 0.0,5.0; Flags: exclusive
[Types]
Name: "custom"; Description: "Выборочная установка"; Flags: iscustom
[CustomMessages]
ru.NameAndVersion=%1, версия %2
ru.AdditionalIcons=Дополнительно:
ru.CreateDesktopIcon=Ярлык на &Рабочем столе
ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
ru.ProgramOnTheWeb=Сайт %1 в Интернете
ru.UninstallProgram=Удалить
ru.LaunchProgram=Запустить %1
ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
ru.AssocingFileExtension=Связывание %1 с файлами %2...
ru.AutoStartProgramGroupDescription=Автозапуск:
ru.AutoStartProgram=Автоматически запускать %1
ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
ru.Shortcut=Ярлыки в меню «Пуск»
ru.ContextMenu=Пункт контекстного меню
ru.Install=Установка обычной версии
ru.Portable=Распаковка портативной версии (рядом с инсталлятором)
[Languages]
; These files are stubs
; To achieve better results after recompilation, use the real language files
Name: "ru"; MessagesFile: "embedded\Russian.isl";
а при распаковке паративки, скрыть выбор папки, чтобы сразу приступал к распаковке »
;InnoSetupVersion=5.5.0 (Unicode)
[Setup]
AppName=Autorun Organizer
AppVerName=Autorun Organizer 1.22
AppVersion=1.22
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\Autorun Organizer
DefaultGroupName=Autorun Organizer
UninstallDisplayIcon={app}\mischief.exe
UninstallDisplayName=Autorun Organizer 1.22 RePack
OutputBaseFilename=Autorun Organizer 1.22
Compression=lzma2/ultra64
Uninstallable=not IsComponentSelected('Portable')
DisableProgramGroupPage=yes
DisableReadyPage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
[Files]
Source: "{app}\AutorunOrganizer.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ChemtableStartupChecker.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\HardwareConstant.dll"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ProgramDataStorage.const"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Reg64Call.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Updater.exe"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\UpdaterDll.dll"; DestDir: "{src}\Autorun Organizer Portable"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Languages\Russian.sib"; DestDir: "{src}\Autorun Organizer Portable\Languages\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\images\line.gif"; DestDir: "{src}\Autorun Organizer Portable\Documentation\images\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_eng.htm"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_rus.htm"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\styles.css"; DestDir: "{src}\Autorun Organizer Portable\Documentation\"; Components: Portable; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\AutorunOrganizer.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ChemtableStartupChecker.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\HardwareConstant.dll"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\ProgramDataStorage.const"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Reg64Call.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Updater.exe"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\UpdaterDll.dll"; DestDir: "{app}"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Languages\Russian.sib"; DestDir: "{app}\Languages\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\images\line.gif"; DestDir: "{app}\Documentation\images\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_eng.htm"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\index_rus.htm"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
Source: "{app}\Documentation\styles.css"; DestDir: "{app}\Documentation\"; Components: install; MinVersion: 0.0,5.0; Flags: ignoreversion
[Run]
Filename: "{app}\AutorunOrganizer.exe"; Description: "{cm:LaunchProgram,Autorun Organizer}"; Components: Install; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait
[Icons]
Name: "{group}\{cm:LaunchProgram,Autorun Organizer}"; Filename: "{app}\AutorunOrganizer.exe"; Components: Install; Tasks: Group; MinVersion: 0.0,5.0;
Name: "{group}\{cm:UninstallProgram,Autorun Organizer}"; Filename: "{uninstallexe}"; Components: Install; Tasks: Group; MinVersion: 0.0,5.0;
Name: "{userdesktop}\{cm:LaunchProgram,Autorun Organizer}"; Filename: "{app}\AutorunOrganizer.exe"; Components: Install; Tasks: Desktopicon; MinVersion: 0.0,5.0;
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Components: "Install"; MinVersion: 0.0,5.0;
Name: "group"; Description: "{cm:Shortcut}"; GroupDescription: "{cm:AdditionalIcons}"; Components: "Install"; MinVersion: 0.0,5.0;
[Components]
Name: "install"; Description: "{cm:Install}"; Types: "custom"; MinVersion: 0.0,5.0; Flags: exclusive
Name: "portable"; Description: "{cm:Portable}"; Types: "custom"; MinVersion: 0.0,5.0; Flags: exclusive
[Types]
Name: "custom"; Description: "Выборочная установка"; Flags: iscustom
[Languages]
; These files are stubs
; To achieve better results after recompilation, use the real language files
Name: "ru"; MessagesFile: "embedded\Russian.isl";
[CustomMessages]
ru.NameAndVersion=%1, версия %2
ru.AdditionalIcons=Дополнительно:
ru.CreateDesktopIcon=Ярлык на &Рабочем столе
ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
ru.ProgramOnTheWeb=Сайт %1 в Интернете
ru.UninstallProgram=Удалить
ru.LaunchProgram=Запустить %1
ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
ru.AssocingFileExtension=Связывание %1 с файлами %2...
ru.AutoStartProgramGroupDescription=Автозапуск:
ru.AutoStartProgram=Автоматически запускать %1
ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
ru.Shortcut=Ярлыки в меню «Пуск»
ru.ContextMenu=Пункт контекстного меню
ru.Install=Установка обычной версии
ru.Portable=Распаковка портативной версии (рядом с инсталлятором)
[code]
var
Components: TLabel; ComponentPage: TWizardPage;
SelectComponentsLabel: TLabel;
procedure InitializeWizard();
begin
ComponentPage := CreateCustomPage(wpLicense, 'Выбор компонентов',
'Какие компоненты должны быть установлены?');
WizardForm.DiskSpaceLabel.Hide
WizardForm.TypesCombo.Parent:= ComponentPage.Surface;
WizardForm.ComponentsList.Parent:= ComponentPage.Surface
WizardForm.ComponentsDiskSpaceLabel.Parent:= ComponentPage.Surface
WizardForm.TypesCombo.Parent:= ComponentPage.Surface;
WizardForm.TypesCombo.Top:= ScaleY(45)
WizardForm.ComponentsList.Top:= ScaleY(45)
WizardForm.ComponentsDiskSpaceLabel.Hide;
WizardForm.ComponentsList.Height := ScaleY(165);
SelectComponentsLabel:= TLabel.Create(WizardForm)
with SelectComponentsLabel do
begin
Left:= ScaleX(40);
Width:= WizardForm.SelectComponentsLabel.Width;
Height:= WizardForm.SelectComponentsLabel.Height;
Autosize:= false;
WordWrap:= true;
Transparent:= true;
Caption:= WizardForm.SelectComponentsLabel.Caption;
WizardForm.SelectComponentsLabel.Parent:= ComponentPage.Surface;
end
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
case PageID of
wpSelectComponents: Result := True;
wpSelectDir: Result := IsComponentSelected('portable') <> False;
end;
end;
El Sanchez, nik1967, Спасибо парни вы лучшие, особенно Ник! Который не поленился перелопатить мой скрипт и найти источник всех бед)) Без вас бы я ещё месяц мучался, так бы и не смог ничего сделать, даже еслиб все форумы перерыл по Inno Setup, что я собственно почти и сделал)) Вообщем всех вам самых лучших пожеланий и поменьше проблемных новичков вроде меня, которые задумывают проект, который им не по силам)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC