omals - СПАСИБО!
» Inno Setup (создание инсталяционных пакетов)
Просьба табуретками не кидать, не успею я прочитать всю ветку. Как написать так, что бы инсталлятор копировал во время установки все файлы из какойнить рядом с ним лежащей папки ("\Data", например), а не только устанавливал то, что в него скомпилино заранее
Народ, подскажите пожалуйста есть *.exe файл который можно запускать с разными ключами. Задача в том, что чтобы сделать тихую установку но с одним лишь окошком где можно допустим выбрать опции "home" и "work". Соотвтественно каждой опции нужно чтобы *.exe запускался с нужными ключами. Кто подскажет, как подобное сотворить?
red88
так.
Source: "{src}\Data\*"; DestDir: "{app}\Data"; Flags: external recursesubdirs createallsubdirs;
sls
Exec(ExpandConstant('{src}') + '\*.exe', '/param', '', SW_ShowNormal, ewWaitUntilTerminated, ErrorCode);
или через секцию Run
Filename: "{src}\*.exe"; Parameters: "/param";
так.
Source: "{src}\Data\*"; DestDir: "{app}\Data"; Flags: external recursesubdirs createallsubdirs;
sls
Exec(ExpandConstant('{src}') + '\*.exe', '/param', '', SW_ShowNormal, ewWaitUntilTerminated, ErrorCode);
или через секцию Run
Filename: "{src}\*.exe"; Parameters: "/param";
Наверное не совсем то. Или яневерно понял. В идеале хорошо, если бы инсталлятор все тихо ставил не чем не смущая юзера, но в конце установки спросил бы... "work" или "home" отметив ту или иную опцию запускался бы *.exe c нужными ключиками.
Пока пошел самым простым путем вот листинг:
Код:
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppName=Work
AppVerName=Work 1.0
DefaultDirName={pf}\ORL
DisableStartupPrompt=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
OutputDir=C:\Documents and Settings\root\My Documents\exp2
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Files]
Source: D:\Home\exp2\WinVNC.exe; DestDir: {app}; Flags: ignoreversion
Source: D:\Home\exp2\VNCHooks.dll; DestDir: {app}; Flags: ignoreversion
Source: D:\Home\exp2\Work.cmd; DestDir: {app}; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Пока пошел самым простым путем вот листинг:
Код:
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppName=Work
AppVerName=Work 1.0
DefaultDirName={pf}\ORL
DisableStartupPrompt=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
OutputDir=C:\Documents and Settings\root\My Documents\exp2
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Files]
Source: D:\Home\exp2\WinVNC.exe; DestDir: {app}; Flags: ignoreversion
Source: D:\Home\exp2\VNCHooks.dll; DestDir: {app}; Flags: ignoreversion
Source: D:\Home\exp2\Work.cmd; DestDir: {app}; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
так что нет никаких идей как можно вставить в код скрипта от Kindly -iss.iss свою дополнительную страницу для инсталляции?
CreateWizardPage я корректно не смог поставить
http://forum.ru-board.com/topic.cgi?forum=5&topic=24767&start=1516
CreateWizardPage я корректно не смог поставить
http://forum.ru-board.com/topic.cgi?forum=5&topic=24767&start=1516
2 sls
стоит попробовать шото такое
еще в [Setup] добавить
DisableDirPage=yes
DisableFinishedPage=yes
DisableProgramGroupPage=yes
DisableReadyMemo=yes
DisableStartupPrompt=yes
DisableReadyPage=yes
[Tasks]
Name: "Home"; Description: "Home app";
Name: "Work"; Description: "Work app";
[Run]
Filename: "{app}\WinVNC.exe"; Parameters: "-connect 192.168.0.152::3910"; Check: IsTaskSelected('Home');
Filename: "{app}\WinVNC.exe"; Parameters: "другой параметр"; Check: IsTaskSelected('Work');
в
[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
if CurPageID=wpInstalling then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
end;
стоит попробовать шото такое
еще в [Setup] добавить
DisableDirPage=yes
DisableFinishedPage=yes
DisableProgramGroupPage=yes
DisableReadyMemo=yes
DisableStartupPrompt=yes
DisableReadyPage=yes
[Tasks]
Name: "Home"; Description: "Home app";
Name: "Work"; Description: "Work app";
[Run]
Filename: "{app}\WinVNC.exe"; Parameters: "-connect 192.168.0.152::3910"; Check: IsTaskSelected('Home');
Filename: "{app}\WinVNC.exe"; Parameters: "другой параметр"; Check: IsTaskSelected('Work');
в
[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
if CurPageID=wpInstalling then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
end;
omals Огромное спасибо. Еще хочу уточнить одну вещь.
Можно как-то убрать эту кнопку? Она все равно без действия!
Можно как-то убрать эту кнопку? Она все равно без действия!
sls
в CurPageChanged еще одно условие
If CurPageID=wpSelectTasks then
begin
WizardForm.BackButton.Hide;
end;
кажись так
в CurPageChanged еще одно условие
If CurPageID=wpSelectTasks then
begin
WizardForm.BackButton.Hide;
end;
кажись так
omals Точно. Благодарю. Подскажи а размеры этой формы можно как-то менять? Т.е интересует сделать следущее : сделать ее поменьше, и может какую-то картиночку туда запихнуть.
P.S. Извини, что напрягаю. Делаю для Начальника, и как известно "аппетит приходит во время еды". То ему ничего не нужно было, теперь понадобились какие-то "рюшечки".
Попытался наглядно изобразить, что же все-таки ему хочется. Т.е. появляется 3-тий вариант именуемый Manual. Где ручками можно вбить IP адрес и номер Порта, после чего нажимаем на кнопку, и инсталлятор подхватывает эти параметры и соединяется. Возможно такое?
P.S. Извини, что напрягаю. Делаю для Начальника, и как известно "аппетит приходит во время еды". То ему ничего не нужно было, теперь понадобились какие-то "рюшечки".
Попытался наглядно изобразить, что же все-таки ему хочется. Т.е. появляется 3-тий вариант именуемый Manual. Где ручками можно вбить IP адрес и номер Порта, после чего нажимаем на кнопку, и инсталлятор подхватывает эти параметры и соединяется. Возможно такое?
sls
сорь, тут уж не помогу
если сделаеш, то картинку обязательно с текстом,
указывающим начальнику путь на ЮХ
или скажи - низя и все тут
а если можно то месяц роботы и много таньги
сорь, тут уж не помогу
если сделаеш, то картинку обязательно с текстом,
указывающим начальнику путь на ЮХ
или скажи - низя и все тут
а если можно то месяц роботы и много таньги
omalsДа без вопросов. Ты вроде в этом разбираешься, просто подскажи возможно ли это средствами только лишь этого инсталлятора? Или это в принципе невозможно этими средствами? И возвращаясь к теме о размерах формы, их реально изменить, или нет?
sls
Цитата:
Это же почти Delphi!? Всё можно...
[no][Code]
procedure InitializeWizard();
begin
WizardForm.Height := WizardForm.Height + 50;
WizardForm.Width := WizardForm.Width + 50;
// WizardForm.Height := WizardForm.Height - 10;
// WizardForm.Width := WizardForm.Width - 10;
WizardForm.Center; // Центрируем (по желанию)
end;
[/no]
Только придётся повозиться с размером, кое-куда сдвинуть объекты формы (в зависимости от изменения размеров) и так далее.
По поводу "Manual" - сделайте на странице дополнительных задач два TEdit, а при запуске из секции [Run] просто возьмите из них значения. Или проблема в чём-то другом?
Цитата:
И возвращаясь к теме о размерах формы, их реально изменить, или нет?
Это же почти Delphi!? Всё можно...
[no][Code]
procedure InitializeWizard();
begin
WizardForm.Height := WizardForm.Height + 50;
WizardForm.Width := WizardForm.Width + 50;
// WizardForm.Height := WizardForm.Height - 10;
// WizardForm.Width := WizardForm.Width - 10;
WizardForm.Center; // Центрируем (по желанию)
end;
[/no]
Только придётся повозиться с размером, кое-куда сдвинуть объекты формы (в зависимости от изменения размеров) и так далее.
По поводу "Manual" - сделайте на странице дополнительных задач два TEdit, а при запуске из секции [Run] просто возьмите из них значения. Или проблема в чём-то другом?
elapse
Цитата:
Не расскажите подробнее?
Цитата:
а при запуске из секции [Run] просто возьмите из них значения
Не расскажите подробнее?
sls
1) Изменение размера страницы, это я предполагаю возможно.
В руководстве есть примеры изменения, там и кнопкам новые координаты присвоить можно.
И на картиночку я встречал примеры.
Изменение размера страницы (из руководства Киндли)
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.MainPanel.Visible:=False;
WizardForm.Bevel1.Visible:=False;
WizardForm.Width:=ScaleX(395);
WizardForm.Height:=ScaleY(142);
Может что можно сделать с помощью Inno Setup Form Designer. Но я в нем не разобрался как размеры менять основной формы.
2) Насчёт возможности ввода параметров в процессе инсталяции я не слышал. Может пример CodeAutomation.iss из примеров Inno Setup поможет или вызов функции из какой-либо dll реализует эти возможности. надо местных гуру этой темы дождаться.
Chanka я конечно новичок в этой теме по сравнению с Вами, но мне кажется что Ваша идея по поводу Art of Murder- это всё таки создание автозапуска-авторана самой игры, или по крайней мере авторана СД/ДВД.
1) Изменение размера страницы, это я предполагаю возможно.
В руководстве есть примеры изменения, там и кнопкам новые координаты присвоить можно.
И на картиночку я встречал примеры.
Изменение размера страницы (из руководства Киндли)
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.MainPanel.Visible:=False;
WizardForm.Bevel1.Visible:=False;
WizardForm.Width:=ScaleX(395);
WizardForm.Height:=ScaleY(142);
Может что можно сделать с помощью Inno Setup Form Designer. Но я в нем не разобрался как размеры менять основной формы.
2) Насчёт возможности ввода параметров в процессе инсталяции я не слышал. Может пример CodeAutomation.iss из примеров Inno Setup поможет или вызов функции из какой-либо dll реализует эти возможности. надо местных гуру этой темы дождаться.
Chanka я конечно новичок в этой теме по сравнению с Вами, но мне кажется что Ваша идея по поводу Art of Murder- это всё таки создание автозапуска-авторана самой игры, или по крайней мере авторана СД/ДВД.
Т.е. есть код:
Код:
[Tasks]
Name: Home; Description: Home; Flags: exclusive
Name: Work; Description: Work; Flags: exclusive
[Codе]
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
If CurPageID=wpSelectTasks then
begin
WizardForm.BackButton.Hide;
end;
if CurPageID=wpInstalling then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
end;
[Run]
Filename: {app}\WinVNC.exe; Flags: waituntilidle
Filename: {app}\WinVNCexe; Parameters: -connect 192.168.0.151::3910; Check: IsTaskSelected('Home')
Filename: {app}\WinVNC.exe; Parameters: -connect 192.168.0.152::3910; Check: IsTaskSelected('Work')
Код:
[Tasks]
Name: Home; Description: Home; Flags: exclusive
Name: Work; Description: Work; Flags: exclusive
[Codе]
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
If CurPageID=wpSelectTasks then
begin
WizardForm.BackButton.Hide;
end;
if CurPageID=wpInstalling then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
end;
[Run]
Filename: {app}\WinVNC.exe; Flags: waituntilidle
Filename: {app}\WinVNCexe; Parameters: -connect 192.168.0.151::3910; Check: IsTaskSelected('Home')
Filename: {app}\WinVNC.exe; Parameters: -connect 192.168.0.152::3910; Check: IsTaskSelected('Work')
sls, попробуйте [more=такой][no]
[Setup]
AppName=Work
AppVerName=Work 1.0
DefaultDirName={pf}\ORL
DisableStartupPrompt=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
OutputDir=C:\Documents and Settings\root\My Documents\exp2
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Files]
;Source: D:\Home\exp2\WinVNC.exe; DestDir: {app}; Flags: ignoreversion
;Source: D:\Home\exp2\VNCHooks.dll; DestDir: {app}; Flags: ignoreversion
;Source: D:\Home\exp2\Work.cmd; DestDir: {app}; Flags: ignoreversion
[Tasks]
Name: "Home"; Description: "Home app"; Flags: exclusive;
Name: "Work"; Description: "Work app"; Flags: exclusive;
Name: "Manual"; Description: "Manual app"; Flags: exclusive;
[Run]
Filename: "{app}\WinVNC.exe"; Parameters: -connect 192.168.0.152::3910; Check: IsTaskSelected('Home');
Filename: "{app}\WinVNC.exe"; Parameters: -connect 127.0.0.1::8000; Check: IsTaskSelected('Work');
Filename: "{app}\WinVNC.exe"; Parameters: -connect {code:TransferParameter}; Check: IsTaskSelected('Manual');
[Code]
var
Edit1, Edit2: TEdit;
procedure TasksListOnClickCheck(Sender: TObject);
begin
if IsTaskSelected('Manual') then
begin
Edit1.Enabled := True;
Edit2.Enabled := True;
Edit1.Color := clWhite;
Edit2.Color := clWhite;
end
else
begin
Edit1.Enabled := False;
Edit2.Enabled := False;
Edit1.Color := clBtnFace;
Edit2.Color := clBtnFace;
end;
end;
procedure InitializeWizard();
begin
Edit1 := TEdit.Create(WizardForm);
Edit1.Top := 110;
Edit1.Left := 5;
Edit1.Parent := WizardForm.SelectTasksPage;
Edit1.Enabled := False;
Edit1.Color := clBtnFace;
Edit2 := TEdit.Create(WizardForm);
Edit2.Top := Edit1.Top;
Edit2.Left := Edit1.Left + Edit1.Width + 10;
Edit2.Parent := WizardForm.SelectTasksPage;
Edit2.Enabled := False;
Edit2.Color := clBtnFace;
WizardForm.TasksList.OnClickCheck := @TasksListOnClickCheck;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectTasks then WizardForm.TasksList.Checked[0] := True;
end;
function TransferParameter(Param: String): String;
begin
Result := Edit1.Text + '::' + Edit2.Text;
end;
[/no][/more] вариант. Если получится, то недостающие надписи над полями и прочие штрихи (скрытие страниц, изсенение формы, проверка правильности IP:порта) доделаете сами. Думаю, это не сложно.
[Setup]
AppName=Work
AppVerName=Work 1.0
DefaultDirName={pf}\ORL
DisableStartupPrompt=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
OutputDir=C:\Documents and Settings\root\My Documents\exp2
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Files]
;Source: D:\Home\exp2\WinVNC.exe; DestDir: {app}; Flags: ignoreversion
;Source: D:\Home\exp2\VNCHooks.dll; DestDir: {app}; Flags: ignoreversion
;Source: D:\Home\exp2\Work.cmd; DestDir: {app}; Flags: ignoreversion
[Tasks]
Name: "Home"; Description: "Home app"; Flags: exclusive;
Name: "Work"; Description: "Work app"; Flags: exclusive;
Name: "Manual"; Description: "Manual app"; Flags: exclusive;
[Run]
Filename: "{app}\WinVNC.exe"; Parameters: -connect 192.168.0.152::3910; Check: IsTaskSelected('Home');
Filename: "{app}\WinVNC.exe"; Parameters: -connect 127.0.0.1::8000; Check: IsTaskSelected('Work');
Filename: "{app}\WinVNC.exe"; Parameters: -connect {code:TransferParameter}; Check: IsTaskSelected('Manual');
[Code]
var
Edit1, Edit2: TEdit;
procedure TasksListOnClickCheck(Sender: TObject);
begin
if IsTaskSelected('Manual') then
begin
Edit1.Enabled := True;
Edit2.Enabled := True;
Edit1.Color := clWhite;
Edit2.Color := clWhite;
end
else
begin
Edit1.Enabled := False;
Edit2.Enabled := False;
Edit1.Color := clBtnFace;
Edit2.Color := clBtnFace;
end;
end;
procedure InitializeWizard();
begin
Edit1 := TEdit.Create(WizardForm);
Edit1.Top := 110;
Edit1.Left := 5;
Edit1.Parent := WizardForm.SelectTasksPage;
Edit1.Enabled := False;
Edit1.Color := clBtnFace;
Edit2 := TEdit.Create(WizardForm);
Edit2.Top := Edit1.Top;
Edit2.Left := Edit1.Left + Edit1.Width + 10;
Edit2.Parent := WizardForm.SelectTasksPage;
Edit2.Enabled := False;
Edit2.Color := clBtnFace;
WizardForm.TasksList.OnClickCheck := @TasksListOnClickCheck;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectTasks then WizardForm.TasksList.Checked[0] := True;
end;
function TransferParameter(Param: String): String;
begin
Result := Edit1.Text + '::' + Edit2.Text;
end;
[/no][/more] вариант. Если получится, то недостающие надписи над полями и прочие штрихи (скрытие страниц, изсенение формы, проверка правильности IP:порта) доделаете сами. Думаю, это не сложно.
firefly2005
Авторан, но только для повторного запуска установки. Если в реестре есть необходимый ключ и если запустить установку повторно, то должна появится такая страница.
Может все-таки, кто поможет сделать а?
Авторан, но только для повторного запуска установки. Если в реестре есть необходимый ключ и если запустить установку повторно, то должна появится такая страница.
Может все-таки, кто поможет сделать а?
Chanka
[more=Код..]
[Setup]
AppName=Game
AppVerName=Game
DefaultDirName={pf}\Game
OutputDir=.
[Files]
Source: compiler:WizModernSmallImage.bmp; DestDir: {tmp}; Flags: dontcopy
Source: compiler:Examples\MyProg.exe; DestDir: {app}
[Registry]
Root: HKLM; Subkey: Software\Game; ValueType: string; ValueName: Path; ValueData: {app}\MyProg.exe; Flags: uninsdeletekey
[Code]
var
Image: TBitmapImage;
PlayButton, RepairButton: TButton;
AppPath: string;
Res: Integer;
procedure PlayOnClick(Sender: TObject);
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','Path', AppPath) then
begin
Exec(AppPath,'','',SW_SHOWNORMAL,ewNoWait,Res)
end
end;
procedure RepairOnClick(Sender: TObject);
begin
RepairButton.Hide
PlayButton.Hide
Image.Hide
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('WizModernSmallImage.bmp')
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','Path', AppPath) then
begin
Image:=TBitmapImage.Create(WizardForm)
Image.Left:=0
Image.Top:=0
Image.Stretch:=True
Image.Align:=Alclient
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage.bmp'))
Image.Parent:=WizardForm.WelcomePage
PlayButton:=TButton.Create(WizardForm)
PlayButton.Left:=WizardForm.BackButton.Left
PlayButton.Top:=WizardForm.BackButton.Top
PlayButton.Width:=WizardForm.BackButton.Width
PlayButton.Height:=WizardForm.BackButton.Height
PlayButton.Caption:='Play'
PlayButton.OnClick:=@PlayOnClick
PlayButton.Parent:=WizardForm
RepairButton:=TButton.Create(WizardForm)
RepairButton.Left:=WizardForm.NextButton.Left
RepairButton.Top:=WizardForm.NextButton.Top
RepairButton.Width:=WizardForm.NextButton.Width
RepairButton.Height:=WizardForm.NextButton.Height
RepairButton.Caption:='Repair'
RepairButton.OnClick:=@RepairOnClick
RepairButton.Parent:=WizardForm
end
end;
[/more]
[more=Код..]
[Setup]
AppName=Game
AppVerName=Game
DefaultDirName={pf}\Game
OutputDir=.
[Files]
Source: compiler:WizModernSmallImage.bmp; DestDir: {tmp}; Flags: dontcopy
Source: compiler:Examples\MyProg.exe; DestDir: {app}
[Registry]
Root: HKLM; Subkey: Software\Game; ValueType: string; ValueName: Path; ValueData: {app}\MyProg.exe; Flags: uninsdeletekey
[Code]
var
Image: TBitmapImage;
PlayButton, RepairButton: TButton;
AppPath: string;
Res: Integer;
procedure PlayOnClick(Sender: TObject);
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','Path', AppPath) then
begin
Exec(AppPath,'','',SW_SHOWNORMAL,ewNoWait,Res)
end
end;
procedure RepairOnClick(Sender: TObject);
begin
RepairButton.Hide
PlayButton.Hide
Image.Hide
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('WizModernSmallImage.bmp')
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','Path', AppPath) then
begin
Image:=TBitmapImage.Create(WizardForm)
Image.Left:=0
Image.Top:=0
Image.Stretch:=True
Image.Align:=Alclient
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage.bmp'))
Image.Parent:=WizardForm.WelcomePage
PlayButton:=TButton.Create(WizardForm)
PlayButton.Left:=WizardForm.BackButton.Left
PlayButton.Top:=WizardForm.BackButton.Top
PlayButton.Width:=WizardForm.BackButton.Width
PlayButton.Height:=WizardForm.BackButton.Height
PlayButton.Caption:='Play'
PlayButton.OnClick:=@PlayOnClick
PlayButton.Parent:=WizardForm
RepairButton:=TButton.Create(WizardForm)
RepairButton.Left:=WizardForm.NextButton.Left
RepairButton.Top:=WizardForm.NextButton.Top
RepairButton.Width:=WizardForm.NextButton.Width
RepairButton.Height:=WizardForm.NextButton.Height
RepairButton.Caption:='Repair'
RepairButton.OnClick:=@RepairOnClick
RepairButton.Parent:=WizardForm
end
end;
[/more]
Sampron
Спасибо большое!
Вот только на картинке белая форма и надписи. можно ли убрать?
Да и еще можно ли как-нибудь сделать, чтобы при нажатии Play инсталл закрывался? А то ни красиво как-то. Да и еще при нажатии отмена чтобы не было сообщения, а просто инсталл закрывался.
Очень прошу помочь с этим делом.
Заранее большое спасибо!
Спасибо большое!
Вот только на картинке белая форма и надписи. можно ли убрать?
Да и еще можно ли как-нибудь сделать, чтобы при нажатии Play инсталл закрывался? А то ни красиво как-то. Да и еще при нажатии отмена чтобы не было сообщения, а просто инсталл закрывался.
Очень прошу помочь с этим делом.
Заранее большое спасибо!
Chanka
Цитата:
В процедуре PlayOnClick после строки Exec(AppPath... добавь WizardForm.Close
и добавь это:
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True;
Confirm:=False;
end;
Цитата:
хм... у меня нормально показывает, Image перекрывает все стандартные компоненты.
Цитата:
Да и еще можно ли как-нибудь сделать, чтобы при нажатии Play инсталл закрывался? А то ни красиво как-то. Да и еще при нажатии отмена чтобы не было сообщения, а просто инсталл закрывался.
В процедуре PlayOnClick после строки Exec(AppPath... добавь WizardForm.Close
и добавь это:
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True;
Confirm:=False;
end;
Цитата:
Вот только на картинке белая форма и надписи. можно ли убрать?
хм... у меня нормально показывает, Image перекрывает все стандартные компоненты.
Chanka
Может это глюки висты, у меня на ХР работает нормально.
Тогда сделай так:
в процедуре InitializeWizard после:
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','Path', AppPath) then
begin
...
добавь:
WizardForm.WelcomeLabel1.Hide
WizardForm.WelcomeLabel2.Hide
а в RepairOnClick добавь:
WizardForm.WelcomeLabel1.Show
WizardForm.WelcomeLabel2.Show
так должно работать.
Может это глюки висты, у меня на ХР работает нормально.
Тогда сделай так:
в процедуре InitializeWizard после:
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','Path', AppPath) then
begin
...
добавь:
WizardForm.WelcomeLabel1.Hide
WizardForm.WelcomeLabel2.Hide
а в RepairOnClick добавь:
WizardForm.WelcomeLabel1.Show
WizardForm.WelcomeLabel2.Show
так должно работать.
Sampron
Спасибо большое! Да, так работает!
Ну и последнее чтобы хотелось. Можно ли чтобы если нажимаешь Repair и запускается установка, то там, если нажать отмена чтобы было сообщение.
Спасибо большое! Да, так работает!
Ну и последнее чтобы хотелось. Можно ли чтобы если нажимаешь Repair и запускается установка, то там, если нажать отмена чтобы было сообщение.
Chanka
Ну ты даёшь!
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True
if RepairButton.Visible = True then
Confirm:=False
else
Confirm:=True
end;
Ну ты даёшь!
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True
if RepairButton.Visible = True then
Confirm:=False
else
Confirm:=True
end;
Sampron
Спасибо!
Если тебе нужно потом могу скинуть тебе одну интересную библиотеку. Типа InnoCallBack, но только лучше и более функциональную. Но только когда сам её получу
Спасибо!
Если тебе нужно потом могу скинуть тебе одну интересную библиотеку. Типа InnoCallBack, но только лучше и более функциональную. Но только когда сам её получу
Есть вопрос, в программе два языка английский и русский, сделал [more=сообщение]
Русский вариант
[Code]
const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt6.5')) then
if MessageBox(0, 'Вы хотите удалить настройки программы?',
'Удаление TranslateIt!', MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt6.5'), True, True, True);
end;
end;
-------------------------------------------------------
Английский вариант
const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt6.5')) then
if MessageBox(0, 'Are you want remove program settings?',
'TranslateIt! Uninstall', MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt6.5'), True, True, True);
end;
end;[/more] на удаление, подскажите как сделать, что бы в зависимости от языка менялись две строчки
if MessageBox(0, 'Вы хотите удалить настройки программы?',
'Удаление TranslateIt!', MB_ICONINFORMATION or mb_YesNo) = IDYES then
Русский вариант
[Code]
const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt6.5')) then
if MessageBox(0, 'Вы хотите удалить настройки программы?',
'Удаление TranslateIt!', MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt6.5'), True, True, True);
end;
end;
-------------------------------------------------------
Английский вариант
const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt6.5')) then
if MessageBox(0, 'Are you want remove program settings?',
'TranslateIt! Uninstall', MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt6.5'), True, True, True);
end;
end;[/more] на удаление, подскажите как сделать, что бы в зависимости от языка менялись две строчки
if MessageBox(0, 'Вы хотите удалить настройки программы?',
'Удаление TranslateIt!', MB_ICONINFORMATION or mb_YesNo) = IDYES then
Diawer
Может так:
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl";
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl";
[CustomMessages]
english.Text=Are you want remove program settings?
english.Text2=TranslateIt! Uninstall
russian.Text=Вы хотите удалить настройки программы?
russian.Text2=Удаление TranslateIt!
[Code]
const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt6.5')) then
if MessageBox(0, ExpandConstant ('{cm:Text}'),
ExpandConstant ('{cm:Text2}'), MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt6.5'), True, True, True);
end;
end;
Может так:
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl";
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl";
[CustomMessages]
english.Text=Are you want remove program settings?
english.Text2=TranslateIt! Uninstall
russian.Text=Вы хотите удалить настройки программы?
russian.Text2=Удаление TranslateIt!
[Code]
const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt6.5')) then
if MessageBox(0, ExpandConstant ('{cm:Text}'),
ExpandConstant ('{cm:Text2}'), MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt6.5'), True, True, True);
end;
end;
Chanka
Последний мой пост (код) выдаёт ошибку при отмене если игра не установлена, пока не используй попробую разобратся.
Последний мой пост (код) выдаёт ошибку при отмене если игра не установлена, пока не используй попробую разобратся.
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: Поиск в WinDjView
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.