Войти

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


Страниц : 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 126 [127] 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

Rikill
02-08-2011, 22:03
Я так и не понял как сделать эквалайзер, буду благодарен за помощ.

salat
02-08-2011, 22:24
Хелоу комрады!
Подскажите такую вещь.
Какую нужно использоавть константу что бы установщик распаковывал файлы из корневой директории?
Поясню.

ISO образ
|
Папка Redist--Directx,VC_redist и тд и тп
|
Папка Install--Здесь находится Setup.exe и авторан.
|
Data.bin
Data2.bin
Data3.bin

Вот нужно чтобы setup.exe распаковывал архивы которые лежат в предыдущей директории.
Как это можно реализовать?
Заранее спасибо.

Rikill
02-08-2011, 22:38
рядом с инсталлером {src} в папке с игрой {app} во временной папке {tmp} есть другое, но оно реже используется, я например делаю так:

ISO образ
папка Archives => архивы
папка Support => DX и пр софт
Setup.exe

salat
02-08-2011, 22:57
Rikill,
Нифига.
Мне нужно именно чтобы Setup был в папке. А архивы в предыдущем каталоге.
И src не прокатывает.
там толи {int} то ли как то так было. не помню.

Rikill
02-08-2011, 23:17
salat, справка говорит, что такого нет.

salat
02-08-2011, 23:29
Rikill, ну вот и я о том же. я видел у кого то в репаке. не помню.
там arc архивы были врямо в ехе-шнике и распаковывались без копирования.

Rikill
02-08-2011, 23:41
salat, так бы сразу и сказал, так надо:
[files]
Source: архив.arc; destdir: {tmp}; Flags: dontcopy

архив запаковывается в exe либо в Setup-1.bin, при запуске инсталлера файл копируется в папку temp оттуда доставай его анпакером типо isdone

saha1010
03-08-2011, 00:21
Цитата saha1010:
Помогите сделать скрипт который будет только записывать 2 значения в реестр которые при установке должен будет ввести сам пользователь. »
на визуалбейсике это и то проще будет »

Сомневаюсь что я смогу что то в бэйсике отредактировать потом , но если выбора нету то помогите хотябы этим.

Rikill
03-08-2011, 01:40
Neutron, не "надено", а "найдено"
var
res : integer;
filepath: String;

begin

...

R.i.m.s.k.y.
03-08-2011, 08:05
Работает, но не выводит сообщение: Найдено подключение к интернету. Установка будет прекращена!
Тепрь чего ему надо? »
а ты выведи res, помоему если пинг возвращает 1 - то все хорошо

[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
AllowNoIcons=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

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

[Icons]
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}

[ code]
Function InitializeSetup: Boolean;
var
res : integer;
filepath: String;
begin
Exec('ping.exe ', ' 2ip.ru ', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, res);
MsgBox('Res = '+ IntToStr(res), mbInformation, MB_OK);
if res > 0 then
begin
MsgBox('Найдено подключение к интернету. Установка будет прекращена'+Filepath, mbInformation, MB_OK);
Result := False;
end;
end;

insombia
03-08-2011, 16:03
Помогите в скрипте сделать нормальный деинсталятор а то когда удаляеш игру то ошибку кидает и игру приходиться удалять только папкой http://rghost.ru/16757851

vint56
03-08-2011, 16:12
insombia, http://rghost.ru/16758961

bagrat
03-08-2011, 16:31
insombia, перед тем как начать делать рип удали в корзину файлы из игры unins000.__
их обычно 2 , а потом компилируй

insombia
03-08-2011, 17:13
vint56 большое спасибо выручил

insombia
03-08-2011, 17:44
почему после распаковки фриарков в IsExec автоматически идет деинсталяция?

R.i.m.s.k.y.
03-08-2011, 21:20
Neutron, хм, пынг вертает нуль при когда нет связи и когда есть октлик, может использовать не пинг?
подбери отсюда что-нить http://www.nirsoft.net/network_tools.html

insombia
03-08-2011, 22:34
Как вставить свой личный нарисованный прогресс бар в скрипт?

ProfLooder
03-08-2011, 23:02
Как вставить свой личный нарисованный прогресс бар в скрипт?»На руборде вроде было.
А вапще вот [Файлс]
Source: compiler:InnoCallBack.dll; DestDir: {tmp};
Source: progress.bmp; DestDir: {tmp}
Source: {win}Help; DestDir: {app}; Flags: external

[Код]
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);
TPBInfo = record ProgressBarName: TNewProgressBar ; ImageHeight, LastWidth, MaxWidth: Integer; end;

var
ProgressBarEdit: array of TEdit;
ProgressBarImage: array of TBitmapImage;
PBBuff: array of TPBInfo;
ProgressTimer: Longword; PBCount: Integer;

function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';

procedure TextureProgressBar(ProgressBar:TNewProgressBar);
var n: Integer;
begin
n:= PBCount; SetArrayLength(ProgressBarEdit, n+1); SetArrayLength(ProgressBarImage, n+1)
SetArrayLength(PBBuff, n+1);

ProgressBarEdit[n]:= TEdit.Create(WizardForm)
ProgressBarEdit[n].SetBounds(ProgressBar.Left, ProgressBar.Top, ProgressBar.Width, ProgressBar.Height);
ProgressBarEdit[n].Enabled:= False;
ProgressBarEdit[n].Parent:= ProgressBar.Parent;
ProgressBarEdit[n].Visible:= ProgressBar.Visible;

PBBuff[n].LastWidth:= ProgressBar.Position;
PBBuff[n].ImageHeight:= ProgressBarEdit[n].Height - ScaleY(2);
PBBuff[n].ProgressBarName:= ProgressBar ;
PBBuff[n].MaxWidth:= ScaleX(ProgressBar.Width);

ProgressbarImage[n]:= TBitmapImage.Create(WizardForm);
ProgressbarImage[n].Stretch:= True;
ProgressbarImage[n].Parent:= ProgressBarEdit[n];
ProgressbarImage[n].SetBounds(ScaleX(0), ScaleY(0), ScaleX(0), ScaleY(0))
ProgressbarImage[n].Bitmap.LoadFromFile(ExpandConstant('{tmp}progress.bmp'));

ProgressBar.Width:= ScaleX(0); ProgressBar.Height:= ScaleY(0);

PBCount:= PBCount+1
end;

procedure HideAllTexturedPB();
var n: integer;
begin
for n:=0 to PBCount-1 do begin ProgressBarEdit[n].Hide; ProgressBarImage[n].Hide; end;
end;

procedure UpdateAllTexturedPB();
var n: integer;
begin
for n:=0 to PBCount-1 do begin
ProgressBarEdit[n].Visible:= PBBuff[n]. ProgressBarName.Visible;
ProgressBarImage[n].Visible:= PBBuff[n].ProgressBarName.Visible; end;
end;

procedure UpdatePB(HandleW, msg, idEvent, TimeSys: LongWord);
var f: integer; CurWidth: single;
begin
for f:=0 to PBCount-1 do begin
UpdateAllTexturedPB
with PBBuff[f].ProgressB arName do begin
CurWidth := (Position*PBBuff[f].MaxWidth)/Max;
if PBBuff[f].LastWidth <> Round(CurWidth) then begin
PBBuff[f].LastWidth:= Round(CurWidth);
ProgressBarImage[f].SetBounds(ScaleX(0), ScaleY(0), PBBuff[f].LastWidth, PBBuff[f].ImageHeight); end;
end;
end;
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('progress.bmp');

TextureProgressBar(WizardForm.ProgressGauge)
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep=ssInstall then ProgressTimer:= SetTimer(0,0, 200, WrapTimerProc(@UpdatePB, 4));
if CurStep=ssPostInstall then KillTimer(0, ProgressTimer);
end;

nik1967
04-08-2011, 09:13
Парни объясните в чём дело, ну или поделитесь нормальным рабочим скриптом!? »
[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
AllowNoIcons=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

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

[Icons]
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}

[_code]
Function InitializeSetup: Boolean;
var
res : integer;
begin
Result := True;
Exec('ping.exe ', ' 2ip.ru ', ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, res);
if res = 0 then begin
MsgBox('Найдено подключение к интернету. Установка будет прекращена!', mbInformation, MB_OK);
Result := False;
end;
end;

insombia
04-08-2011, 10:44
подскажите чем создавать скрипты?




© OSzone.net 2001-2012