Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
функция картинки на эту кнопку »
diman_21Ru, Через png и bmp:
habib2302
03-05-2014, 15:15
ответьте пожалуйста на мой вопрос http://forum.oszone.net/post-2346336-534.html
ответьте пожалуйста на мой вопрос http://forum.oszone.net/post-2346336-534.html »
habib2302, Не совсем понятен вопрос,что за прогресс бар и куда его добавить.
Давайте поточней задавайте вопросы...
habib2302
03-05-2014, 15:29
Shift85, как вам объяснить? я дорабатываю свой репак adobe flash player. во время установки первый прогресс бар показывал состояние распаковки файлов, а второй показывал состояние установки самого adobe fl pl
habib2302, Не то пробуй:http://rghost.ru/54891448
diman_21Ru
03-05-2014, 17:01
habib2302, русский ,английский добавил спасибо огромное а как можно ещё украинский,работал с этим примером если можно добавьте туда же заранее спасибо http://rghost.ru/54895502
habib2302
05-05-2014, 00:44
diman_21Ru, http://yadi.sk/d/CdooukGBP4J6T
Антон_Мураткин@vk
05-05-2014, 15:11
Всем привет!!!
Подскажите пожалуйста скрипты на музыку, Слайдшоу и соответственно какие должны быть ещё dll-ки для этого
Подскажите пожалуйста скрипты на музыку, Слайдшоу »
На слайдшоу: http://rghost.ru/54963256
habib2302
05-05-2014, 23:17
http://i.imgur.com/Co3m5Wa.png (http://i.imgur.com/qmIhpTL.jpg)
я дорабатываю свой репак adobe flash player. и как сделать так, чтобы во время установки первый прогресс бар показывал состояние распаковки файлов, а второй показывал состояние установки самого adobe fl pl
sergey3695
06-05-2014, 11:23
habib2302, ну как первый прогрессбар сделать? ну думаю знаешь. загвоздка во втором.
1. второй активируется после первого. (думаю понятно)
2. проверка папки установки flash player (если там указывается папка установки,то способ не прокатит)
3. какой размер папки куда ставится и сколько займет устанавливаемое.
4. двигать прогрессбар второй проверяя размер папки куда ставится.
5. не парится. поставить скрыто установку а потом прогрессбар на 100 сразу двинуть и все. (ставится то недолго)
я только не знаю как скрыто установить флеш. надо параметр смотреть.
habib2302
06-05-2014, 12:22
sergey3695, мой репак сделан на подобии от diakov.
вот как устроен мой скрипт
http://i.imgur.com/68siDW5.png (http://i.imgur.com/mvsefjg.jpg)
и вот команда для тихой установки
[Run]
Filename: {tmp}\activex.exe; Flags: RunHidden; Components: AFP\A; Parameters: "/install /force";
Filename: {tmp}\plugin.exe; Flags: RunHidden; Components: AFP\P; Parameters: "/install /force";
т.е у меня идет распаковка во временную папку и дальше идет тихая установка самого flash player'а
т.е у меня идет распаковка во временную папку и дальше идет тихая установка самого flash player'а »
habib2302, Зачем изобретать велосипед а не проще все напрямую ставить как репаки игр например.
habib2302
06-05-2014, 14:10
Shift85, в каком смысле напрямую?
sergey3695
06-05-2014, 19:00
habib2302, т.к. файлов нету,скрипта нету,то пример.
Сделал так
////////////////////// Начало ExecAndWait //////////////////
var
lastproc: cardinal;
const
NORMAL_PRIORITY_CLASS = $00000020;
REALTIME_PRIORITY_CLASS = $00000100;
type
_TStartupInfo = record
cb: DWORD;
lpReserved, lpDesktop: Longint;
lpTitle: PAnsiChar;
dwX, dwY, dwXSize, dwYSize, dwXCountChars, dwYCountChars, dwFillAttribute, dwFlags: DWORD;
wShowWindow, cbReserved2: Word;
lpReserved2: Byte;
hStdInput, hStdOutput, hStdError: Longint;
end;
_TProcessInformation = record
hProcess, hThread: Longint;
dwProcessId, dwThreadId: DWORD;
end;
_TMsg = record
hWnd: HWND;
msg, wParam: Word;
lParam: LongWord;
Time: TFileTime;
pt: TPoint;
end;
function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; external 'OpenProcess@kernel32.dll stdcall';
procedure GetStartupInfo(var lpStartupInfo: _TStartupInfo); external 'GetStartupInfoA@kernel32.dll stdcall';
function CreateProcess(lpApplicationName: PAnsiChar; lpCommandLine: PAnsiChar; lpProcessAttributes, lpThreadAttributes: DWORD; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: PAnsiChar; lpCurrentDirectory: PAnsiChar; const lpStartupInfo: _TStartupInfo; var lpProcessInformation: _TProcessInformation): BOOL; external 'CreateProcessA@kernel32.dll stdcall';
function WaitForSingleObject(hHandle: Longint; dwMilliseconds: DWORD): DWORD; external 'WaitForSingleObject@kernel32.dll stdcall';
function TerminateProcess(hProcess: Longint; uExitCode: UINT): BOOL; external 'TerminateProcess@kernel32.dll stdcall';
function PeekMessage(var lpMsg: _TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall';
function TranslateMessage(const lpMsg: _TMsg): BOOL; external 'TranslateMessage@user32.dll stdcall';
function DispatchMessage(const lpMsg: _TMsg): Longint; external 'DispatchMessageA@user32.dll stdcall';
function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall';
procedure Application_ProcessMessages;
var
Msg: _TMsg;
begin
while PeekMessage(Msg, 0, 0, 0, 1) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
function ExecAndWait(filename, params: pansichar; showcmd: integer; Priority: Smallint; zav: DWord): Boolean;
var
SI : _TStartupInfo;
PI : _TProcessInformation;
CMD: string;
prt: DWORD;
begin
Result:=false;
CMD:='"' + filename + '" ' + params;
GetStartupInfo(SI);
SI.wShowWindow := showcmd;
SI.dwFlags := 1;
if Priority = 0 then prt:= NORMAL_PRIORITY_CLASS else
if Priority = 1 then prt:= REALTIME_PRIORITY_CLASS;
Result:=CreateProcess('', PansiChar(CMD), 0, 0, false, prt,'', pansichar(ExtractFilePath(filename)), SI, PI);
lastproc:=PI.dwProcessId;
if zav=1 then
begin
while WaitforSingleObject(PI.hProcess, 50) = $00000102 do
Application_ProcessMessages;
end;
CloseHandle(PI.hProcess)
end;
////////////////////// Конец ExecAndWait ///////////////////
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
DisableFinishedPage=yes
OutputDir=.
[Languages]
Name: RUS; MessagesFile: "compiler:Languages\Russian.isl"
[Code ]
var
Timer: TTimer;
Labelpr: TLabel;
NewProgressBar1: TNewProgressBar;
// ExecAndWait
#include "ExecAndWait.iss"
procedure RedesignWizardForm;
begin
Labelpr := TLabel.Create(WizardForm);
with Labelpr do
begin
Parent := WizardForm;
Left := ScaleX(96);
Top := ScaleY(120);
Width := ScaleX(289);
Caption:= 'Установка флеша';
end;
{ NewProgressBar1 }
NewProgressBar1 := TNewProgressBar.Create(WizardForm);
with NewProgressBar1 do
begin
Parent := WizardForm;
Left := ScaleX(96);
Top := ScaleY(144);
Width := ScaleX(289);
Height := ScaleY(25);
Max:= 100;
end;
end;
procedure FlRun(Sender: TObject);
begin
ExecAndWait(ExpandConstant('{src}\activex.exe'), '/install /force', SW_HIDE, 0,1);
WizardForm.Close;
end;
procedure Timepr(Sender: TObject);
begin
NewProgressBar1.Position:=NewProgressBar1.Position+9;
if NewProgressBar1.Position= 100 then
begin
Labelpr.Caption:= 'Завершение установки';
Timer.Enabled:= False;
end;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
Timer:=TTimer.Create(nil);
with Timer do begin
Interval:= 300;
OnTimer:=@Timepr;
end;
WizardForm.OnActivate:= @FlRun;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
Cancel:=True;
end;
Время таймера должно быть меньше времени установки флеша. Прогрессбар тупо двигается по таймеру,а в это время происходит установка, потом прогресс доходит до максимума и лейбл меняется на завершение установки,в то время как флеш еще ставится. хотел сделать ожидание установщика (если флеш установится), но тогда процесс зависает. Можно конечно создать еще процесс,но это извращенство. Вообщем так. Или файлы со скиптом и я по изгаляюсь )
Антон_Мураткин@vk
06-05-2014, 20:09
Shift85, Благодарю!!!
Ребят, вот скрипт Инсталлятора http://sendfile.su/976358 не могу найти в скрипте код на кнопки далее, отмена, установка. Хочу кнопки передвинуть в другое место. Может кто посмотрит и подскажет в каком месте в скрипте это поменять положения этих кнопок. Заранее благодарю
habib2302
06-05-2014, 20:27
скрипта нету »
скрипт я не дам. т.к кто-то у меня скрипт украл и за меня делал репаки
в каком месте в скрипте это поменять положения этих кнопок »
Антон_Мураткин@vk, В модуле Button.iss
with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,203,277,77,23,ExpandConstant('{tmp}\button.png'),18,False);
BtnSetEvent(hBackBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hBackBtn,WFButtonFont.Handle);
BtnSetFontColor(hBackBtn,$DAE369,$DAE369,$DAE369,$B6B6B6);
BtnSetCursor(hBackBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;
with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,298,277,77,23,ExpandConstant('{tmp}\button.png'),18,False);
BtnSetEvent(hNextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hNextBtn,WFButtonFont.Handle);
BtnSetFontColor(hNextBtn,$DAE369,$DAE369,$DAE369,$B6B6B6);
BtnSetCursor(hNextBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;
with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,203,277,77,23,ExpandConstant('{tmp}\button.png'),18,False);
BtnSetEvent(hCancelBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hCancelBtn,WFButtonFont.Handle);
BtnSetFontColor(hCancelBtn,$DAE369,$DAE369,$DAE369,$B6B6B6);
BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;
298,277,77,23
298,277,77,23
203,277,77,23
Эти параметры. ;)
Антон_Мураткин@vk
06-05-2014, 20:35
Shift85, Благодарю! А я искал в главном скрипте
Dodakaedr
06-05-2014, 21:43
мультиязычный вариант »
Как сделать чтобы полностью инсталлятор менялся, а то оно меняется только на одной странице?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC