Проверка наличия программы.

307cwam

Новичок
Проверка наличия программы.

Здравствуйте!
---------------
Подскажите как мне сделать так.

Установлена одна версия программы.
Появилось обновление программы.
Хочу сделать, чтобы при запуске инсталлятора обновления (новая версия),
1. Если программа не установлена.
Инсталлятор устанавливал новую версию.

2. Если программа установлена и есть на компьютере.
Инсталлятор отменял свой запуск и/или выдавал сообщение
(о том, что нужно удалить старую версию программы прежде чем,
установливать новую).

------------------------------------------
Что нужно добавить/прописать в скрипт?
 

SBalykov

Старожил
Проверка наличия программы.

Здравствуйте!
---------------
Подскажите как мне сделать так.

Установлена одна версия программы.
Появилось обновление программы.
Хочу сделать, чтобы при запуске инсталлятора обновления (новая версия),
1. Если программа не установлена.
Инсталлятор устанавливал новую версию.

2. Если программа установлена и есть на компьютере.
Инсталлятор отменял свой запуск и/или выдавал сообщение
(о том, что нужно удалить старую версию программы прежде чем,
установливать новую).

------------------------------------------
Что нужно добавить/прописать в скрипт?
Можно через реестр. Примерно так
Код:
[Setup]
AppName=Opera
AppVerName=Opera v16.0
DefaultDirName={pf}\Opera
OutputDir=.

[Code]
function InitializeSetup: Boolean;
begin
if RegKeyExists(HKLM,'SOFTWARE\Opera Software') or RegKeyExists(HKLM64,'SOFTWARE\Opera Software') then begin
MsgBox('Обнаружена установленная программ Opera'+#13#10+'для обновления необходимо удалить предыдущую версию', mbInformation, MB_OK);
Result:=false;
end else
Result:=true;
end;
 
Последнее редактирование:

Awalder

Новичок
Можно через реестр. Примерно так
Код:
[Setup]
AppName=Opera
AppVerName=Opera v16.0
DefaultDirName={pf}\Opera
OutputDir=.

[Code]
function InitializeSetup: Boolean;
begin
if RegKeyExists(HKLM,'SOFTWARE\Opera Software') or RegKeyExists(HKLM64,'SOFTWARE\Opera Software') then begin
MsgBox('Обнаружена установленная программ Opera'+#13#10+'для обновления необходимо удалить предыдущую версию', mbInformation, MB_OK);
Result:=false;
end else
Result:=true;
end;
Автообновление возможно реализовать? Если например запускаешь приложение и появляется сообщение типа "доступна более новая версия, обновить?"
 
Последнее редактирование:

SBalykov

Старожил
Автообновление возможно реализовать? Если например запускаешь приложение и появляется сообщение типа "доступна более новая версия, обновить?"
Почему бы и нет. Самый простой, на мой взгляд, способ:
Код:
[Setup]
AppName=Opera
AppVerName=Opera v16.0
AppVersion=16.5
DefaultDirName={pf}\Opera
OutputDir=.

[Code]
function InitializeSetup: Boolean;
var Ver: String;
begin
if RegQueryStringValue(HKLM,'SOFTWARE\Opera', 'Version', Ver) or RegQueryStringValue(HKLM64,'SOFTWARE\Opera', 'Version', Ver)then begin
if Ver < ('{#SetupSetting("AppVersion")}') then
if MsgBox('Версия установленной программы устарела.'+#13#10+'Нажмите "Да" для обновления программы.', mbInformation, MB_YESNO)= IDNO then
Result:=false else Result:=true;
end else
Result:=true;
end;
 
Сверху