Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
Я так и не понял как сделать эквалайзер, буду благодарен за помощ.
Хелоу комрады!
Подскажите такую вещь.
Какую нужно использоавть константу что бы установщик распаковывал файлы из корневой директории?
Поясню.
ISO образ
|
Папка Redist--Directx,VC_redist и тд и тп
|
Папка Install--Здесь находится Setup.exe и авторан.
|
Data.bin
Data2.bin
Data3.bin
Вот нужно чтобы setup.exe распаковывал архивы которые лежат в предыдущей директории.
Как это можно реализовать?
Заранее спасибо.
рядом с инсталлером {src} в папке с игрой {app} во временной папке {tmp} есть другое, но оно реже используется, я например делаю так:
ISO образ
папка Archives => архивы
папка Support => DX и пр софт
Setup.exe
Rikill,
Нифига.
Мне нужно именно чтобы Setup был в папке. А архивы в предыдущем каталоге.
И src не прокатывает.
там толи {int} то ли как то так было. не помню.
salat, справка говорит, что такого нет.
Rikill, ну вот и я о том же. я видел у кого то в репаке. не помню.
там arc архивы были врямо в ехе-шнике и распаковывались без копирования.
salat, так бы сразу и сказал, так надо:
[files]
Source: архив.arc; destdir: {tmp}; Flags: dontcopy
архив запаковывается в exe либо в Setup-1.bin, при запуске инсталлера файл копируется в папку temp оттуда доставай его анпакером типо isdone
saha1010
03-08-2011, 00:21
Цитата saha1010:
Помогите сделать скрипт который будет только записывать 2 значения в реестр которые при установке должен будет ввести сам пользователь. »
на визуалбейсике это и то проще будет »
Сомневаюсь что я смогу что то в бэйсике отредактировать потом , но если выбора нету то помогите хотябы этим.
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
insombia, http://rghost.ru/16758961
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;
Парни объясните в чём дело, ну или поделитесь нормальным рабочим скриптом!? »
[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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.