Показать полную графическую версию : [архив] Inno Setup .:[все вопросы]:.
Подскажите, пожалуйста, как сделать так чтобы перед началом повторной установки программы сначала запускался деинсталлятор в тихом режиме, а затем уже шел сам процесс установки. Пробовал сделать все это через секцию [InstallDelete], но первое, что неудобно постоянно выскакивает предупреждение, что такие-то компоненты будут удалены, а их у меня – экрана не хватит. Пробовал и без секции [InstallDelete], эффект почти тот же самый, только с разницей, что компоненты не будут удалены.
И самое главное, мой инсталлятор делает бекап файлов и к моменту повторного запуска инсталлятора эти файлы должны быть на своих местах, такое через секцию [InstallDelete] никакими средствами не добиться. Голову сломал, а как сделать - не знаю!
Вот мой код (http://ifolder.ru/13340875).
P.S.
Хотел дать весь код в топике, но при отправке сообщения, ругается, что много символов, пришлось сократить до секции [Code], а затем и полностью на ифолдер перенести.
Так тож я ничего не правил, как было. »
бывает... ;)
Подскажите пожалуйста как такой инсталл сделать, чтоб было такое оформление »
Здесь использовано скинирование - ISSkin (http://isskin.codejock.com/), плюс все компоненты переписаны заново.
и были функции удалений сохраненй и игр? »
не поленитесь, почитайте где-то страниц тридцать назад, я приводил пример скрипта с удалением сохранений.
я вытаскивал код, скомпилировал, а картинка сужается. »
Покажите скрипт, так тяжело сказать где поправить.
1. В программе удаления сделать список дополнительных задач (как [tasks] в программе установки; нужно для удаления определённого каталога со все его содержимым) . Показ стандартного (системного) диалога с запросом меня не очень устраивает, т.к. я делаю многоязычный инсталлятор, а в секции {cm:*} не работает... »
Покажите пример, как делаете.
2. На черточке внизу диалогового окна написать текст (копирайт). »
[code][Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Messages]
BeveledLabel=forum OSzone.net
[Code]
procedure InitializeWizard;
begin
WizardForm.BeveledLabel.Left:= 20;
end;
3. Во всех диалоговых окнах инсталлятора и деинсталлятора (кроме заголовка окна) сделать отображаение AppVerName вместо AppName. »
Не совсем понятен вопрос, но насколько я понял напишите в скрипте соответственно AppName равным AppVerName и тогда обязательно используйте AppId.
Или прокатит и предыдущая запись? »
Ну а куда она родимая денется, обязательно прокатит...
Pos(subs,s) - возвращает позицию первой подстроки subs в строке s (или 0 если подстрока не найдена)
вот только я не знаю, что писать вместо того, что я выделил.... »
Вы скрипт покажите, проще будет общаться, а то на пальцах тяжело объяснять.
вот мой скрипт...
[code]
var
LogoImage:TBitmapImage;
LogoLabel: TLabel;
LogoPanel: TPanel;
procedure LogoOnClick(Sender: TObject);
var ReturnCode: Integer;
begin
ShellExec('open', 'http://......', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('logo.bmp');
LogoPanel := TPanel.Create(WizardForm);
with LogoPanel do
begin
Parent := WizardForm;
Left := ScaleX(5);
Top := ScaleY(320);
Width := ScaleX(165);
Height := ScaleY(35);
BevelOuter := bvNone;
end;
LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
Parent := LogoPanel;
Left := ScaleX(0);
Top := ScaleY(0);
AutoSize:=true;
ReplaceColor:=clFuchsia;
ReplaceWithColor:=clBtnFace;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo.bmp'));
end;
LogoLabel := TLabel.Create(WizardForm);
with LogoLabel do
begin
Parent := LogoPanel;
Width := LogoPanel.Width;
Height := LogoPanel.Height;
Transparent:=True;
Cursor := crHand;
OnClick:=@LogoOnClick;
end;
end;
[Files]
Source: C:\logo.bmp; DestDir: {tmp}; Flags: dontcopy
Pos(subs,s) - возвращает позицию первой подстроки subs в строке s (или 0 если подстрока не найдена) »Ааа, понял, функция для работы со строками. Спасибо.
чтобы перед началом повторной установки программы сначала запускался деинсталлятор в тихом режиме, а затем уже шел сам процесс установки. »
[Setup]
AppID={{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Code]
//проверка устанавливалась ли программа ранее
var
Error: Integer;
ResultStr: String;
function InitializeSetup: Boolean;
begin
Result := True;
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}_is1', 'DisplayName', ResultStr) then
if ResultStr = 'My Program v 1.5' then
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}_is1', 'UninstallString', ResultStr) then
ResultStr:= RemoveQuotes(ResultStr);
if not Exec(ResultStr, '/silent', '', SW_SHOWNORMAL, ewWaitUntilTerminated, Error) then
MsgBox('Ошибка удаления. ' #13#13 '' + SysErrorMessage(Error) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;
end;
end;
вот мой скрипт... »
[Code]
var
LogoImage: TBitmapImage;
LogoLabel: TLabel;
LogoPanel: TPanel;
procedure LogoOnClick(Sender: TObject);
var
ReturnCode: Integer;
begin
ShellExec('open', 'http://......', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode)
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('logo.bmp');
LogoPanel := TPanel.Create(WizardForm);
with LogoPanel do
begin
Parent := WizardForm;
Left := ScaleX(5);
Top := ScaleY(320);
Width := ScaleX(165);
Height := ScaleY(35);
BevelOuter := bvNone;
end;
LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
Parent := LogoPanel;
Left := ScaleX(0);
Top := ScaleY(0);
AutoSize:=true;
ReplaceColor:=clFuchsia;
ReplaceWithColor:=clBtnFace;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo.bmp'));
end;
LogoLabel := TLabel.Create(WizardForm);
with LogoLabel do
begin
Parent := LogoPanel;
Width := LogoPanel.Width;
Height := LogoPanel.Height;
Transparent:=True;
Cursor := crHand;
OnClick:=@LogoOnClick;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
LogoPanel.Visible:= True;
LogoImage.Visible:= True;
LogoLabel.Visible:= True;
if CurPageID = wpInstalling then
begin
LogoPanel.Visible:= False;
LogoImage.Visible:= False;
LogoLabel.Visible:= False;
end;
end;
[Files]
Source: C:\logo.bmp; DestDir: {tmp}; Flags: dontcopy
Serega, ВЫ как всегда на высоте, то, что доктор прописал, лучше и не придумаешь, спасибо большое!!!
user_123
01-08-2009, 23:04
Во всех диалоговых окнах инсталлятора и деинсталлятора (кроме заголовка окна) сделать отображаение AppVerName вместо AppName
Проблема заключается в том, что у программы достаточно длинное название и внутри диалоговых окон оно смотрится не очень красиво, а если написать сокращённо, то - в заголоке. Данную проблему я решил так: в секции [Messages] написал полное название для заголока, без "%1", а в appname - сокращённое.[Messages]
BeveledLabel=forum OSzone.net
[Code]
procedure InitializeWizard;
begin
WizardForm.BeveledLabel.Left:= 20;
end; »
Спасибо.В программе удаления сделать список дополнительных задач (как [tasks] в программе установки; нужно для удаления определённого каталога со все его содержимым) »В программе установки можно сделать доп. задачи, например, создание ярлыка на рабочем столе / в меню быстрого запуска, добавление доп. ключей в реестр и др... А в программе удаление так сделать (чтобы врезультате уставки флага (галочки) удалился определённый каталог), если я не ошибаюсь, нельзя... Конечно, можно что-то в сецию [code] написать, но... я не знаю высокоуровневых языков программирования... если вижу готовый код, то примерно понимаю, о чём речь идёт, а сам написать не могу...
Мне на ру-боарде подкинули скрипт
var
UnInstallPath: String;
function GetUnInstallPath( AppID: String ): String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}_is1','UninstallString', UnInstallPath);
Result := UnInstallPath;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
ResultCode:integer;
begin
Result:=true;
if CurPageID = wpSelectComponents
then
Exec(UnInstallPath, '/VERYSILENT','', sw_Hide, ewWaitUntilTerminated, ResultCode);
end;
Но он, почему то не работает, как должен работать, может, кто посмотрит. Этот скрипт в идеале должен запускать "тихий деинсталлятор", но не сразу при запуске инсталлятора, а после странице выбора компонентов. У меня вопрос к Serega – можно ли сделать такое в твоем скрипте? И еще очень актуальный вопрос, а точнее три вопроса:
1.). Как убрать вот это табличку: http://img7.imageshost.ru/imgs/090802/d23336c08c/t2bfd0.jpg (http://imageshost.ru/links/d065b7b0d8b70a4b093014a993cbc527), а то у меня компонентов туча, экрана не хватает.
2.). Как правильно срастить вот этот скрипт
procedure ComponentOnClick(Sender: TObject);
begin
if WizardSelectedComponents(False) = '' then
WizardForm.NextButton.Enabled:= False
else WizardForm.NextButton.Enabled:= True;
end;
procedure InitializeWizard();
begin
WizardForm.ComponentsList.OnClick := @ComponentOnClick;
end;
с моим скриптом (http://ifolder.ru/13340875).
3.). Мне на том же форуме, в моем скрипте, изменили процедуру CurPageChanged
procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel1.Caption:= 'Апаратное Обеспечение';
PageDescriptionLabel1.Caption:= 'Программа установки обнаружила следуюшие необходимые компоненты';
PageNameLabel2.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel2.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel3.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel3.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel4.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel4.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel5.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel5.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel6.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel6.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel7.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel7.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel8.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel8.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageID:=CurPageID;
if CurPageID = wpSelectComponents then
begin
WizardForm.BackButton.Enabled:= false;
if CurPageID = wpSelectDir then
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False;
begin
if CurPageID=wpInstalling
then
if CurPageID=wpFinished
then
begin
WizardForm.Width:=497;
WizardForm.Height:=358;
WizardForm.Position:=poScreenCenter;
end
end;
end;
end;
end;
И теперь кнопка "назад" становиться неактивной на странице выбора компонентов. Вопрос - как мне сделать чтобы кнопка "назад" была неактивна именно вот на этой странице: http://img7.imageshost.ru/imgs/090802/3acce5e418/t9a9d7.jpg (http://imageshost.ru/links/f282ca31e54d5b04ee2401abc68e21f0), то есть на следующей после выбора компонентов?!
P.S.
Забыл сразу написать: у меня для этой игры есть два официальных патча, но установить их можно, только если в игре стоят оригинальные файлы, с которых я делаю бекап. То есть реально установка этих патчей должна начаться сразу после "тихой деинсталляции" до установки основных файлов и только по одному - сначала файл myprogram v. 1.1, после завершения установки этого файла, идет установка файла myprogram v. 1.2 и только после того как установится второй файл должна начаться установка основных файлов.
КАК это сделать?!
Заранее СПАСИБО!!!
Но он, почему то не работает, как должен работать, может, кто посмотрит. Этот скрипт в идеале должен запускать "тихий деинсталлятор", но не сразу при запуске инсталлятора, а после странице выбора компонентов. »
Записал в процедуре CurPageChanged, которую привёл ниже...
Как убрать вот это табличку: »
Добавьте в секции [Components] ко всем компонентам флаг disablenouninstallwarning
Как правильно срастить вот этот скрипт »
1. Берете вашу процедуру:
procedure ComponentOnClick(Sender: TObject);
begin
if WizardSelectedComponents(False) = '' then
WizardForm.NextButton.Enabled:= False
else WizardForm.NextButton.Enabled:= True;
end;
и добавляете её в свой скрипт, в любое место, главное перед процедурой InitializeWizard.
2. Добавляете эту строку:
WizardForm.ComponentsList.OnClick := @ComponentOnClick;
в самое начало процедуры InitializeWizard, после begin.
Мне на том же форуме, в моем скрипте, изменили процедуру CurPageChanged »
procedure CurPageChanged(CurPageID: Integer);
var
ResultCode: Integer;
UnInstallPath: string;
begin
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel1.Caption:= 'Апаратное Обеспечение';
PageDescriptionLabel1.Caption:= 'Программа установки обнаружила следуюшие необходимые компоненты';
PageNameLabel2.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel2.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel3.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel3.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel4.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel4.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel5.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel5.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel6.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel6.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel7.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel7.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel8.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel8.Caption:= WizardForm.PageDescriptionLabel.Caption;
if CurPageID = wpSelectComponents then
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}_is1','UninstallString', UnInstallPath);
UnInstallPath:= RemoveQuotes(UnInstallPath);
Exec(UnInstallPath, '/verysilent','', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
if CurPageID = wpSelectDir then
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:= False;
end;
if CurPageID = wpReady then
WizardForm.BackButton.Enabled:= False;
if CurPageID = wpFinished then
begin
WizardForm.Width:= 497;
WizardForm.Height:= 358;
WizardForm.Position:= poScreenCenter;
end
end;
Привет! У меня есть скрипт авторана на Inno Setup Script.
В нём есть кнопка:
btn2:= TButton.Create(AutoRun);
with btn2 do begin
Parent:= AutoRun;
Left := 280;
Top := 185;
Width := 270;
Height := 22;
Caption:= 'Начать игру';
Cursor:= crHand;
OnClick := @btn2Click;
end;
Эта кнопка запускает процедуру:
procedure btn2Click(Sender: TObject);
var
CurPageID: Integer;
begin
Exec(ExpandConstant('{src}\Setup.exe'),'','',SW_SHOW,ewNoWait,ResultCode)
AutoRun.Close;
PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
end;
Как сделать чтоб эта кнопка была неактивная при отсутствии {src}\Setup.exe ?
P.S. Я знаю что это делается процедурой:
begin
btn2.Enabled := False;
end
Но как сделать проверку наличия файла {src}\Setup.exe ?
Serega
Спасибо, конечно, но сделал все по вашим подсказкам и вставил процедуру CurPageChanged. В итоге скрипт компилируется и работает, но последняя страница, получается урезанная: http://img7.imageshost.ru/imgs/090802/0c19f89157/t924ac.jpg (http://imageshost.ru/links/3771e6e33d75bdec0d0c79b2f509fbd4).
Проверил все что мог, по размерам нигде отклонений нет, но все-таки страница завершения получается урезанная, а так все работает идеально.
Прошу помощи еще на один мой вопрос:
У меня для этой игры есть два официальных патча, но установить их можно, только если в игре стоят оригинальные файлы, с которых я делаю бекап. То есть реально установка этих патчей должна начаться сразу после "тихой деинсталляции" до установки основных файлов и только по одному - сначала файл myprogram v. 1.1, после завершения установки этого файла, идет установка файла myprogram v. 1.2 и только после того как установится второй файл должна начаться установка основных файлов.
КАК это сделать?!
Но как сделать проверку наличия файла {src}\Setup.exe ? »
сразу за кодом создания кнопки, добавьте:
if not FileExists(ExpandConstant('{src}\Setup.exe')) then
btn2.Enabled:= False;
страница, получается урезанная: »
так я сам удивился, когда увидел в вашей процедуре изменение страницы, но вы же писали скрипт и для чего это вам надо я не знаю, поэтому я это оставил без изменений, просто сделал, чтоб всё работало.
procedure CurPageChanged(CurPageID: Integer);
var
ResultCode: Integer;
UnInstallPath: string;
begin
PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel1.Caption:= 'Апаратное Обеспечение';
PageDescriptionLabel1.Caption:= 'Программа установки обнаружила следуюшие необходимые компоненты';
PageNameLabel2.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel2.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel3.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel3.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel4.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel4.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel5.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel5.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel6.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel6.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel7.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel7.Caption:= WizardForm.PageDescriptionLabel.Caption;
PageNameLabel8.Caption:= WizardForm.PageNameLabel.Caption;
PageDescriptionLabel8.Caption:= WizardForm.PageDescriptionLabel.Caption;
if CurPageID = wpSelectComponents then
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}_is1','UninstallString', UnInstallPath);
UnInstallPath:= RemoveQuotes(UnInstallPath);
Exec(UnInstallPath, '/verysilent','', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
if CurPageID = wpSelectDir then
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:= False;
end;
if CurPageID = wpReady then
WizardForm.BackButton.Enabled:= False;
if CurPageID = wpFinished then
WizardForm.Position:= poScreenCenter;
end;
Извиняюсь сразу чего-то проглядел...
КАК это сделать?! »
1. Бекап файлов;
2. Происходит деинсталляция... чего? Программы?
3. Я так понимаю - востановление оригинальных файлов?
4. Установка двух патчей;
5. Ваша установка программы.
Я правильно понял?
На соседнем форуме есть интересная программка, называется она InnoSetup Script Joiner (http://issjoiner.codeplex.com/), сделана он одним из постояльцев того форума. Смысл ее работы в том, что она сшивает скрипты, объединяя несколько в один. Работать с ней просто: скрипты, которые хотите объединить делите по файлам с расширением *.iss (только секцию [code]) клик правой кнопкой мыши и скрипт – готов. Не так красиво, как это сделает человек, но работает.
1. Бекап файлов;
2. Происходит деинсталляция... чего? Программы?
3. Я так понимаю - востановление оригинальных файлов?
4. Установка двух патчей;
5. Ваша установка программы.
Я правильно понял? »
Немного не так.
При первой установки инсталлятора после выбора компонентов, если пользователь выбрал установку патчей:
1. Запуск программы установки.
2. После страницы выбора компонентов, устанавливаются патчи, по одному:
2.1 Первый патчь, от начала установки до полного ее завершения.
2.2 Второй патчь, от начала установки до полного ее завершения.
3. Бекап файлов.
4. Установка остальных компонентов программы.
При повторном запуске инсталлятора, если пользователь сразу не выбрал установку патчей:
1. Запуск программы установки.
2. После страницы выбора компонентов, идет "тихая деинсталляция".
3. Устанавливаются патчи, по одному:
3.1 Первый патчь, от начала установки до полного ее завершения.
3.3 Второй патчь, от начала установки до полного ее завершения.
4. Бекап файлов.
5. Установка остальных компонентов программы.
Serega, Спасибо!
Я уже написал процедуру:
If (FileSearch('setup.exe', ExpandConstant('{src}'))='')
then
begin
btn2.Enabled := False;
end
Но Вы предложили лутшее решение.
Я сегодня только первий день знакомлюсь с Inno Setup Script
так я сам удивился, когда увидел в вашей процедуре изменение страницы, но вы же писали скрипт и для чего это вам надо я не знаю, поэтому я это оставил без изменений, просто сделал, чтоб всё работало. »
Спасибо все прекрасно работает!!!
P.S.
Сейчас проверил на запуск программы, до этого программу не запускал – тестировал на бекап файлов, запуск программы – пропал, программа не запускается со страницы завершения. Подозреваю, запуск DirectX тоже пропал, проверить не могу, он у меня уже установлен, только если попробовать подсунуть старую версию?!
SOS
Попробуйте, посмотрите (http://ifolder.ru/13373165), пожалуйста, весь скрипт, и еще прикладываю второй вариант – в нем все работает, но есть абсолютный путь, а это не есть "ХУ". Посмотрите, пожалуйста, может, что и получится.
Сейчас проверил на запуск программы »
Извиняюсь, удалил лишнее... Добавьте в procedure CurPageChanged сразу после begin:
PageID:= CurPageID;
Добавьте в procedure CurPageChanged сразу после begin: »
Спасибо!!! Теперь все работает.
Rosich, немного подредактировал ваш скрипт, он стал на 250 строк меньше...
Проверьте на работоспособность.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC