Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: doombuster
Дата сообщения: 19.04.2009 14:21
AleSasha

Цитата:
Там всего 4 бесплатных скина, которые совсем мне не подходят.


Ващет там есть ссылка на:
http://browse.deviantart.com/customization/skins/windows/visualstyle/

И там просто куча бесплатный скинов, которые очень легко переделываются в ISSkin'e для Inno Setup
Автор: Serega0675
Дата сообщения: 19.04.2009 14:41
AleSasha

Цитата:
У меня, как я уже писала, этого не происходит
я думаю вы всё же использовали компоненты, сказать честно, я сам на этой странице большой разницы не заметил... а вообще:
FlatComponentsList=yes
стоит по умолчанию...
FlatComponentsList=no, это только, то, что мы можем изиенить...

Цитата:
Не думаю, что стоит говорить от имени других участников форума...
конечно вы правы... сказать честно... хотелось много высказать, но я промолчу, просто из элементарного уважения...

P.S.
С праздником Пасхи всех!!! Христос воскрес!!!
Автор: spider91
Дата сообщения: 19.04.2009 16:02
DeKaNszn

спасибо.

а насчет кнопок обясню подробней:

я хочу все кнопки "далее" заменить на "вперед" но если если просто заменить next button на "вперед" то кнопка "установить" тоже меняется а мне етого ненадо. я хотел зделать через if и else но незнаю как в процедуре называется та страница что у тебя на первом скрине.



и еще:
как через одну процедуру запустить другую ?

Добавлено:
P.S.

с праздником всех!!!!!!!
Автор: SiluetPro
Дата сообщения: 19.04.2009 16:11
Qarma, да спасибо! сделал как ты сказал, только игра запускается не после финиша, а перед этой страницой, сразу после установки! ситуация такова: страница финиша отключена, за место неё сообщение и надо чтобы после нажатия кнопки ок на этом самом сообщение игра и запускалась! как сделать?
Автор: DeKaNszn
Дата сообщения: 19.04.2009 16:51
AleSasha

в ISSkin можно самим делать нужные темы
что мешает сделать похожую на классическую тему винды?

spider91


Цитата:
незнаю как в процедуре называется та страница что у тебя на первом скрине.


wpReady


Цитата:
как через одну процедуру запустить другую ?


пример:

Код: [no]procedure name1;
begin
...
end;

procedure name2;
begin
...
name1;
...
end;[/no]
Автор: Qarma
Дата сообщения: 19.04.2009 17:14

Цитата:
Qarma, да спасибо! сделал как ты сказал, только игра запускается не после финиша, а перед этой страницой, сразу после установки! ситуация такова: страница финиша отключена, за место неё сообщение и надо чтобы после нажатия кнопки ок на этом самом сообщение игра и запускалась! как сделать?

Дополнительно надо писать....может сделаю, но не сейчас.
Автор: spider91
Дата сообщения: 19.04.2009 17:41
DeKaNszn


не идет. я так уже пробовал. пишет unknown identifier.
нужно запустить процедуру arc из процедуры curstepchanged
Автор: SiluetPro
Дата сообщения: 19.04.2009 17:41
Qarma, напишешь тогда в личку, как сделаешь, пожалуста?
Автор: Qarma
Дата сообщения: 19.04.2009 17:52
SiluetPro

Сделаю - напишу
Автор: DeKaNszn
Дата сообщения: 19.04.2009 18:28
spider91


Цитата:
нужно запустить процедуру arc из процедуры curstepchanged


процедура arc должна быть описана до процедуры curstepchanged

это одно из правил паскаля и дельфи
Автор: LonerDergunov
Дата сообщения: 19.04.2009 18:37
Никак не могу понять как организовать простейшую вроде бы вещь - шифрование дистрибутива без необходимости вводить пароль при установке.
То есть чтоб устанавливалось без запроса ввода пароля и без отображения диалога ввода пароля, а если попытаться распаковать дистрибутив через Inno Setup Unpacker, то пароль запрашивался. (пример, - дистрибутив K-Lite).
Автор: Yoldosh
Дата сообщения: 19.04.2009 19:59
кто нибудь HELP!!! как закрасить маленькую полоску отмеченное красним
Автор: DeKaNszn
Дата сообщения: 19.04.2009 20:06
LonerDergunov


Код: [no][Setup]
Encryption=true
Password=veryhardinstallationpass

[Code]
Procedure CurPageChanged(CurPageID: Integer);
Begin
if CurPageID = wpPassword
then begin
WizardForm.PasswordEdit.Visible:= False;
WizardForm.PasswordEdit.Text:= 'veryhardinstallationpass';
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
End;[/no]
Автор: msatmb
Дата сообщения: 19.04.2009 20:13
SiluetPro

Цитата:
ситуация такова: страница финиша отключена, за место неё сообщение и надо чтобы после нажатия кнопки ок на этом самом сообщение игра и запускалась! как сделать?

Пробуй.
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if CurStep = ssDone then
if MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' установлена!' + #10#10#13 + 'Запустить ' + '{#SetupSetting("AppName")}' + '?' , mbInformation, MB_OKCANCEL) = IDOK then
Exec(ExpandConstant('{app}\bin\XR_3DA.exe'), '', '', SW_SHOW, ewNoWait, ResultCode);
end;

И в свою очередь вопрос. Подскажите как объединить вот [more=этот]
#define TIME_FOR_VIEW 15
[Code]
////////////////////////////////////////////////////
{Установка слайдшоу на окне инсталятора}
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
TimerID: LongWord;
currTime: Integer;
SplashImage: TBitmapImage;

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 OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
currTime := currTime + 1;
case currTime of
{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_2.bmp')) end;
2*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_3.bmp')) end;
3*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_4.bmp')) end;
4*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_5.bmp')) end;
5*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_6.bmp')) end;
6*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_7.bmp')) end;
7*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_8.bmp')) end;
8*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_9.bmp')) end;
9*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_10.bmp'))end;
end;
if CurrTime = 9*{#TIME_FOR_VIEW} then CurrTime := -1;
end;
///////////////////////////////////////////////////

procedure InitializeWizard();
begin
///////////////////////////////////////////////////////////
{Изменение окна инсталятора с пермещение прогрессбара}
ExtractTemporaryFile('Image_1.bmp');
ExtractTemporaryFile('Image_2.bmp');
ExtractTemporaryFile('Image_3.bmp');
ExtractTemporaryFile('Image_4.bmp');
ExtractTemporaryFile('Image_5.bmp');
ExtractTemporaryFile('Image_6.bmp');
ExtractTemporaryFile('Image_7.bmp');
ExtractTemporaryFile('Image_8.bmp');
ExtractTemporaryFile('Image_9.bmp');
ExtractTemporaryFile('Image_10.bmp');

currTime := 0;

WizardForm.ProgressGauge.Parent := WizardForm;
WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + 10;
WizardForm.ProgressGauge.Left := ScaleX(10);
WizardForm.ProgressGauge.Width := WizardForm.Width - WizardForm.CancelButton.Width - ScaleX(40);
WizardForm.ProgressGauge.Height := 12;
WizardForm.ProgressGauge.Hide;
WizardForm.StatusLabel.Parent := WizardForm;
WizardForm.StatusLabel.Left := ScaleX(10);
WizardForm.StatusLabel.Width := WizardForm.ProgressGauge.Width;
WizardForm.StatusLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
WizardForm.StatusLabel.Hide;

SplashImage := TBitmapImage.Create(WizardForm);
SplashImage.Top := 0;
SplashImage.Left := 0;
SplashImage.Width := WizardForm.MainPanel.Width;
SplashImage.Height := WizardForm.Bevel.Top;
SplashImage.Parent := WizardForm.InnerPage;
SplashImage.Stretch := True;
SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_1.bmp'));
SplashImage.Hide;
///////////////////////////////////////////////////////////
end;
procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
begin
/////////////////////////////////////////
{Здесь код показа на странице Инсталл измененного прогрессбара}
if (CurPageID = wpInstalling) then
begin
pfunc := WrapTimerProc(@OnTimer, 5);
TimerID := SetTimer(0, 0, 1000, pfunc);

WizardForm.InnerNotebook.Hide;
WizardForm.Bevel1.Hide;
WizardForm.MainPanel.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;


WizardForm.ProgressGauge.Show;
SplashImage.Show;
WizardForm.StatusLabel.Show;

WizardForm.CancelButton.Enabled :=True;
end
else
begin

WizardForm.ProgressGauge.Hide;
SplashImage.Hide;
WizardForm.StatusLabel.Hide;
//WizardForm.FilenameLabel.Hide;

if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
begin
WizardForm.InnerNotebook.Show;
WizardForm.Bevel1.Show;
WizardForm.MainPanel.Show;
WizardForm.PageNameLabel.Show;
WizardForm.PageDescriptionLabel.Show;
end;

end;
//////////////////////////////////////////////////////////////
end;
[/more]
код
с запуском [more=bat-ника]
[Files]
Source: InnoCallback.dll; Flags: dontcopy
Source: test.bat; DestDir: {tmp}; AfterInstall: Unpack(); Flags: ignoreversion

[Code]
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
TimerID: LongWord;

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 OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
with WizardForm.ProgressGauge do
Position:= (Position + 1) mod Max;
end;

procedure Unpack();
var
ResultCode: Integer; pfunc: LongWord;
begin
WizardForm.ProgressGauge.Position:= 0;
WizardForm.ProgressGauge.Max:= 100;

pfunc:= WrapTimerProc(@OnTimer, 4);
TimerID:= SetTimer(0, 0, 50, pfunc);
Exec(ExpandConstant('{tmp}\test.bat'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
[/more], но так, чтобы слайд-шоу после того как начал работать батник не полетело с огромной скоростью, а отрабатывало то время на картинку что ему было задано в первом коде. Понимаю, что что-то надо добавить, но вот что....иль объединить по умному
Автор: An4eus
Дата сообщения: 19.04.2009 20:23
В Inno Setup setup.exe можно организовать запуск с "ключами" ?
Автор: msatmb
Дата сообщения: 19.04.2009 20:45
Qarma

Цитата:
Как сделать обводку у текста, допустим текст белый а обводка чёрная

Видел в одном скрипте в шапке. Там правда музыкальные кнопки были обведены, но думаю можно и текст обвести.
[more]
procedure InitializeWizard();
var
Panel1: TPanel;
begin
Panel1 := TPanel.Create(WizardForm);
with Panel1 do
begin
Panel1.Parent := WizardForm;
Panel1.Left := ScaleX(1);
Panel1.Top := ScaleY(320);
Panel1.Width := ScaleX(165);
Panel1.Height := ScaleY(46);
Panel1.TabOrder := 0;
Panel1.Color := clWhite;
Panel1.BevelInner := bvLowered;
Panel1.BevelOuter := bvRaised;
Panel1.BorderStyle := bsSingle;
end;
end;
[/more]
Автор: Artem1143
Дата сообщения: 19.04.2009 21:11
Люди А кто знает Как Сделать Прогресбару Свою картинку(текстуру)
чтоб отображалась имено она а не зависило от стояшей темы офрмления конечного пользователя
Автор: Qarma
Дата сообщения: 19.04.2009 21:12

Цитата:
Видел в одном скрипте в шапке. Там правда музыкальные кнопки были обведены, но думаю можно и текст обвести.
Подробнее...

msatmb

Спасибо, помогло)
Автор: SotM
Дата сообщения: 19.04.2009 22:36
An4eus
Ответные вопросы:
1. Запуск чего именно?
2. Какие ключи?
3. И зачем это всё нужно?

Artem1143
Для начала правильно научись писать по-русски, слова в разных регистрах не приветствуются.
И опять же, ты хочешь узнать про графическое оформление? А твой скриншот есть?! Или на крайняк в фотошопе нарисуй, чтобы люди могли увидеть что ты хочешь получить.
Автор: An4eus
Дата сообщения: 19.04.2009 23:08
SotM
с командной строки прописать setup.exe -q -r
например так
Автор: kombat 77
Дата сообщения: 19.04.2009 23:24
AleSasha
"плоские кнопки" можно изобразить с помощью TPanel и передавать нажатие кнопки с помощью Sender: TObject.
Насчёт сдвигания кнопок при нажатии (У TPanel нет свойства OnMouseDown , OnMouseUp), можно на TPanel наложить TLabel (у TLabel есть OnMouseDown , OnMouseUp) и будет возможность сделать нажатия.
Автор: Artem1143
Дата сообщения: 20.04.2009 00:42
Люди подскажите кто знает как сделать прогресбару свою картинку(текстуру)
чтоб отображалась имено она а не зависило от стояшей темы офрмления конечного пользователя
Скрипт Сделан на основе скрипта из инсталлятора Inno Setup Scripting 5.1 - Руководство по расширенным возможностям Inno Setup от Kindly

Нужно чтоб прогрессбар был такой же текстуры как и кнопки вот Скриншот



надеюсь на вашу помошь
Автор: spider91
Дата сообщения: 20.04.2009 00:52
DeKaNszn


спасибо.

потом попробую, щас не в состоянии... праздник удался....и завтра наверно хреново будет...


христос воскрес!!!!!!!!

Добавлено:

поддерживаю Artem1143. интересно посмотреть как будет. кто знает подскажите плиз
Автор: STALKER_HIGHLANDER
Дата сообщения: 20.04.2009 03:56
Товарищи, выручайте. Что-то я запутался в одной хреновине, без подсказки не разберусь.
Что я хочу-при установке в реестре проверяется наличие определеной ветки, и если её там не оказывается, то выскакивает окошко с предупреждением и предложением продолжить или прекратить установку. Если юзер жмет "продолжить установку", то следует проверка значения определенного ключа в реестре. И если значение не соответствует заданному, то появяется окошко, как я описал выше.

Первую часть задуманного, я сделал.

Цитата:
function InitializeSetup(): Boolean;
begin
Result:=True;
if not RegKeyExists(HKLM, 'SOFTWARE\GSC Game World\STALKER-SHOC')
then
begin
if MsgBox('Программа обнаружила, что у Вас не установлен "Сталкер", либо установлена не лицензионная копия.' #13#13 'Продолжить установку?', mbInformation, MB_YESNO) = idNo
then Result:=False;
end
end;

А вот вторая часть не прёт... Мне нужно проверить {reg:HKLM\SOFTWARE\GSC Game World\STALKER-SHOC\, InstallVers} = 1.0004.
Как это прописать?
Автор: DeKaNszn
Дата сообщения: 20.04.2009 06:24
STALKER_HIGHLANDER


Цитата:
Мне нужно проверить {reg:HKLM\SOFTWARE\GSC Game World\STALKER-SHOC\, InstallVers} = 1.0004.
Как это прописать?



Код: [no]RegQueryStringValue(HKLM, 'SOFTWARE\GSC Game World\STALKER-SHOC', 'InstallVers', tmp);
If (tmp<>'1.0004')
Then Result:=False;[/no]
Автор: Lana4ka
Дата сообщения: 20.04.2009 06:44
HELP ME!!!

есть последовательность выполнения файлов:

Код:
Exec(ExpandConstant('{app}\bin\00.bat'), '', '', SW_SHOW, ewWaitUntilTerminated, Res);
Exec(ExpandConstant('{app}\bin\01.bat'), '', '', SW_SHOW, ewWaitUntilTerminated, Res);

Exec(ExpandConstant('{app}\bin\02.bat'), '', '', SW_SHOW, ewWaitUntilTerminated, Res);
Exec(ExpandConstant('{app}\bin\03.bat'), '', '', SW_SHOW, ewWaitUntilTerminated, Res);

Exec(ExpandConstant('{app}\bin\DirectorService.exe'), '-install', '', SW_SHOW, ewWaitUntilTerminated, Res);
Exec(ExpandConstant('{app}\bin\04.bat'), '', '', SW_SHOW, ewWaitUntilTerminated, Res);
Автор: Serega0675
Дата сообщения: 20.04.2009 07:06
An4eus

Цитата:
В Inno Setup setup.exe можно организовать запуск с "ключами" ?

[more=пример]
Код: [Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Code]
procedure InitializeWizard;
var
i: Integer;
begin
for i:= 1 to ParamCount do
if ParamStr(i) = '/?' then
MsgBox('Инсталлятор запущен из командной строки: ' +
ExtractFileName(ExpandConstant('{srcexe}')) + ' /?', mbInformation, MB_OK);
end;

Автор: Yoldosh
Дата сообщения: 20.04.2009 07:10
кто нибудь HELP!!! как закрасить маленькую полоску отмеченное красним
Автор: Lana4ka
Дата сообщения: 20.04.2009 07:20
Serega0675

Благодарю!!! Помогло
Автор: SotM
Дата сообщения: 20.04.2009 07:35
Artem1143
Ну можно например по таймеру повесить функцию, и в ней blit'ать картинку "прогресс бара" на саму форму.

Yoldosh
You've posted the same message three times already. It's not a good idea to do that. Just wait for the answer.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.