Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
Как их можно реализовать? »
Это вроде как не какие-то стандартные проверки. Для их реализации надо знать, что они в принципе делают, а названия у проверок не сказать, что сильно интуитивно-понятные.
И если вы сами не представляете, что там проверяется, то тут у автора скрипта надо спрашивать, я думаю:)
Dodakaedr
21-07-2014, 17:39
Shkutu, у меня мало опыта в этом и для этого я кусок секции показал, может кто и знает что там за проверка осуществляется, может кто более опытен в таких делах.
bosenkov5
21-07-2014, 17:50
Помогите как в скрипте сделать так чтобы в ярлыки были в пуске и на рабочем столе
вот скрипт
#define NeedSize "6315"
#define exeName "Valiant Hearts.exe"
#define NeedMem 512
#define SecondProgressBar
;#define Components
;#define records
;#define facompress
;#define precomp "0.4"
;#define SrepInside
;#define unrar
;#define XDelta
;#define PackZIP
[Setup]
#define skin
//#define splash
//#define bass
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppName}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
SolidCompression=true
DisableReadyPage=false
VersionInfoCompany=
DiskSpanning=true
AppPublisher=
AppVersion={#MyAppName}
AppPublisherURL=www.inno.at.ua
AppUpdatesURL=http://www.inno.at.ua
AppID={{CC2B42B4-FD74-4A23-B2C6-D3A694F2D395}
#ifdef NeedSize
ExtraDiskSpaceRequired={#NeedSize}
#endif
SetupIconFile=C:\Users\Bosenok\Desktop\MAY SKRIPT\files\ac2.ico
#ifdef Components
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Язык субтитров; Types: full; Flags: fixed
Name: text\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 100000000
Name: text\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 200000000
Name: voice; Description: Язык озвучки; Types: full; Flags: fixed
Name: voice\rus; Description: Русский; Flags: exclusive; ExtraDiskSpaceRequired: 500000000
Name: voice\eng; Description: Английский; Flags: exclusive; ExtraDiskSpaceRequired: 600000000
#endif
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[CustomMessages]
russian.t1=Папка установки:
russian.t2=Папка в меню «Пуск»:
russian.t3={#MyAppName}
russian.t4=Дополнительные задачи:%n Добавить ярлык на Рабочий стол%n Установить DirectX
russian.Welcome1=Вас приветствует Мастер установки игры
russian.Welcome2=Программа установит игру {#MyAppName} на Ваш компьютер.%n%nРекомендуется закрыть антивирусные пакеты, а также все прочие приложения перед тем, как продолжить.%n%nНажмите «Далее», чтобы продолжить, или «Отмена», чтобы выйти из программы установки.
russian.Space=Доступно места на диске:
russian.Space1=Требуется места на диске:
russian.Status=Пожалуйста, подождите, пока игра установится на Ваш компьютер.
russian.DescrLbl1=В какую папку Вы хотите установить {#MyAppName}?
russian.Language=Выберите язык игры
russian.StartMenuLbl=Нажмите «Далее», чтобы продолжить. Если Вы хотите выбрать другую папку, нажмите «Обзор».
russian.Finished1=Установка игры {#MyAppName} успешно завершена.%n
russian.Finished2=Игра {#MyAppName} была успешно установлена на Ваш компьютер. Для ее запуска выберите соответствующий ярлык в меню «Пуск» или ярлык на Рабочем столе.
russian.Finished3=Нажмите «Завершить», чтобы выйти из программы установки.
russian.DirectX=Обновить DirectX
russian.DirectXInstall=Идет обновление DirectX...
russian.Icons=Добавить ярлыки на Рабочий стол
russian.Uninstall=Удалить {#MyAppName}
russian.p1=Программа создаст ярлыки в следующей папке меню «Пуск».
russian.p2=Выберите дополнительные задачи, которые должны выполниться при установке%n{#MyAppName}, после этого нажмите «Далее»:
russian.p3=Нажмите «Установить», чтобы продолжить, или «Назад», если Вы хотите%nпросмотреть или изменить опции установки.
russian.p4=Игра {#MyAppName} была успешно установлена на Ваш компьютер.%nДля ее запуска выберите соответствующий ярлык в меню «Пуск» или%nярлык на Рабочем столе.%n%nНажмите «Завершить», чтобы выйти из программы установки.
russian.ExtractedFile=Извлекается файл:
russian.Extracted=Распаковка архивов...
russian.CancelButton=Отмена
russian.Error=Ошибка распаковки!
russian.ElapsedTime=Прошло:
russian.RemainingTime=Осталось времени:
russian.EstimatedTime=Всего:
russian.AllElapsedTime=Время установки:
[Files]
Source: files\GDIPlus.dll; DestDir: {tmp}; Flags: nocompression
Source: files\30.png; DestDir: {tmp}
Source: files\4.png; DestDir: {tmp}
Source: files\5.png; DestDir: {tmp}
Source: files\1.png; DestDir: {tmp}
Source: files\6.jpg; DestDir: {tmp}
Source: files\2.png; DestDir: {tmp}
#ifdef bass
Source: files\bass.dll; DestDir: {tmp}; Flags: dontcopy noencryption
Source: files\sound.mp3; DestDir: {tmp}; Flags: dontcopy noencryption nocompression
Source: files\MusicButton.bmp; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef skin
Source: files\ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: files\tiger_v2.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
#endif
#ifdef splash
Source: files\splash.png; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: files\isgsg.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
#endif
Source: files\button.bmp; DestDir: {tmp}; Flags: dontcopy
Source: files\ISDone.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: records.inf; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef facompress
Source: Include\facompress.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef SrepInside
Source: Include\arc.ini; DestDir: {tmp}; Flags: dontcopy
Source: Include\srep.exe; 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
; Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
; Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
; Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#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
[Tasks]
Name: icon; Description: Добавить ярлык на Рабочий стол
Name: VCCheck; Check: InstallDirectX; Description: Установить DirectX
[Icons]
Name: {userdesktop}\{#MyAppName}; Filename: {app}{#exeName}; Check: CreateIcons
Помогите как в скрипте сделать так чтобы в ярлыки были в пуске и на рабочем столе »
bosenkov5, Как то так.
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeWorkingDir}{#MyAppExeName}"; Workingdir: "{app}\{#MyAppExeWorkingDir}"; IconFilename: "{app}{#UninstallFolder}\Game.ico"; Check: "NoIcons";
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeWorkingDir}{#MyAppExeName}"; Workingdir: "{app}\{#MyAppExeWorkingDir}"; IconFilename: "{app}{#UninstallFolder}\Game.ico"; Check: "CheckError";
Или так.
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
bosenkov5
21-07-2014, 18:06
Shift85, Это делать в разделе:[Icons] ?я так понял?
Это делать в разделе:[Icons] »
bosenkov5, Так точно.
bosenkov5
21-07-2014, 18:11
Shift85, нет ошибку пишет
bosenkov5
21-07-2014, 18:18
Shift85, сделал вот так
Name: {userdesktop}\{#MyAppName}; Filename: {app}{#exeName}; Check: CreateIcons
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#exeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#exeName}"; Tasks: desktopicon
но выдает ошибку:
bosenkov5
21-07-2014, 18:40
Сделал вот так
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#exeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#exeName}";
на рабочем столе появился ярлык а в пуске появились но без картинки но запускаются
как картинки поставить?
Dima2009
21-07-2014, 20:29
Люди добрые помогите накидать срипт в распаковке 7z под паролем рядом с инстал.
чтоб вот так было.
http://i011.radikal.ru/1407/d6/e60db9c2840e.png
R.i.m.s.k.y.
22-07-2014, 09:37
bosenkov5, он у тебя ругается на секцию tasks, скорее всего desktopicon не определен в секции tasks
R.i.m.s.k.y.
22-07-2014, 10:07
на рабочем столе появился ярлык а в пуске появились но без картинки но запускаются »
попробуй
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#exeName}"; IconFilename: ""{app}\{#exeName}"; IconIndex: 0
но вообще че-то мне кажется что кеш иконок у тебя глючит, перегрузи комп
R.i.m.s.k.y.
22-07-2014, 12:22
строчка
if ('1.0.0.6' < '1.0.0.20') then MsgBox('www', mbInformation, MB_OK);
ошибка при компиляции
---------------------------
Ошибка компиляции
---------------------------
Строка 136:
Column 34:
Type mismatch.
---------------------------
ОК
---------------------------
Column 34 это then
даже if ('a' < 'b') - та же ошибка.
что я делаю не так? ведь инно должен сравнивать текстовые строки
расширенный юникод компилятор
R.i.m.s.k.y., да вроде работает
[Setup]
AppName=My Program
AppVersion=1.5
VersionInfoVersion=1.0.0.20
CreateAppDir=no
OutputDir=...
[Code]
function CompareVer(): Boolean;
var
str: String;
begin
GetVersionNumbersString( ExpandConstant( '{srcexe}' ), str );
if (str < '1.0.0.20') then MsgBox('www', mbInformation, MB_OK);
end;
procedure InitializeWizard();
begin
CompareVer();
end;
расширенный юникод компилятор »
R.i.m.s.k.y., На анси работает :yes:
R.i.m.s.k.y.
22-07-2014, 13:47
да вроде работает »
:FACEPALM.JPG:
этот if ('a' < 'b') был в initializeSetup
Function InitializeSetup : boolean;
var
VersionMS0x86, VersionLS0x86 : Cardinal;
i : integer;
begin
if ('a' > 'b') then MsgBox('www', mbInformation, MB_OK);
result := false;
end;
вынес в другую функцию, как в примере - заработал
R.i.m.s.k.y., так тоже работает, и на юникоде
[Code]
function CompareVer( const str1, str2: String ): Boolean;
begin
if ( str1 > str2 ) then MsgBox('www', mbInformation, MB_OK);
end;
procedure InitializeWizard();
begin
CompareVer( '1.0.0.6', '1.0.0.20' );
end;
El Sanchez
22-07-2014, 16:30
R.i.m.s.k.y., saurn, неужели '1.0.0.6' "больше", чем '1.0.0.20'? Обсуждалось ведь уже, что так сравнивать версии в виде строк некорректно.
R.i.m.s.k.y.
22-07-2014, 16:44
El Sanchez, нет, конечно 1,0,0,6 меньше 1,0,0,20
это просто эксперимент по сравнению строк в инно от выхлопа GetVersionNumbers
как тогда правильно сравнивать версии?
sergey3695
23-07-2014, 14:11
R.i.m.s.k.y.,
function CompareTextI(const str1, str2: String): Boolean;
var
stri1,stri2: integer;
begin
stri1:= strtoint(str1);
stri2:= strtoint(str2);
Result:= false;
if stri1 > stri2 then
begin
MsgBox('первое больше', mbInformation, MB_OK);
Result:= true;
end;
if stri1 < stri2 then
begin
MsgBox('второе больше', mbInformation, MB_OK);
Result:= true;
end;
end;
procedure CompareVer(const str1, str2: String);
var
stri1,stri2: string;
begin
if CompareText(str1,str2)= 0 then MsgBox('равны', mbInformation, MB_OK)
else begin
while Pos('.',str1) > 0 do
begin
stri1:= copy(str1,0,Pos('.',str1)-1);
delete(str1,1,Pos('.',str1));
stri2:= copy(str2,0,Pos('.',str2)-1);
delete(str2,1,Pos('.',str2));
if CompareTextI(stri1,stri2) then
Break;
end;
CompareTextI(str1,str2);
end;
end;
procedure InitializeWizard();
begin
CompareVer('1.0.0.6', '1.2.0.20' );
end;
может так как-нибудь. сравнивать числа по отдельности до точки. вот только интересно если будет скажем 02 и 2. то как считать? равно. или нет.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC