PDA

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


Страниц : 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

Shkutu
21-07-2014, 17:36
Как их можно реализовать? »
Это вроде как не какие-то стандартные проверки. Для их реализации надо знать, что они в принципе делают, а названия у проверок не сказать, что сильно интуитивно-понятные.
И если вы сами не представляете, что там проверяется, то тут у автора скрипта надо спрашивать, я думаю:)

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

Shift85
21-07-2014, 18:02
Помогите как в скрипте сделать так чтобы в ярлыки были в пуске и на рабочем столе »
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] ?я так понял?

Shift85
21-07-2014, 18:08
Это делать в разделе:[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') - та же ошибка.
что я делаю не так? ведь инно должен сравнивать текстовые строки
расширенный юникод компилятор

saurn
22-07-2014, 13:37
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;

Shift85
22-07-2014, 13:43
расширенный юникод компилятор »
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;
вынес в другую функцию, как в примере - заработал

saurn
22-07-2014, 13:51
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