Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Devils Night
Цитата nik1967:
Только этот пример будет работать, если точно известно местонахождение MyProg и ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\MyProg.
Если MyProg установлено в другом месте и если используется х64 винда, нужен другой пример »
там не другой пример, там проверка isWin64 и ключи реестра разные могут быть, надо смотреть конкретную прогу, ключи могут быть в 64-х разрядном разделе HKLM64, или в подразделе syswow64, см пример пониже. Но одновременно hklm64\syswow64 быть не может, это я для затравки написал

Код: Выделить весь код
[Setup]
AppName=MyProg
AppVerName=MyProg
DefaultDirName={pf}\MyProg

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[_Code]
function InitializeSetup: Boolean;
begin
    Result:=true;
if not iswin64 the begin
  if not ((RegKeyExists(HKLM, 'SOFTWARE\MyProg')) 
    and (FileExists('C:\Program Files\MyProg\1.exe')) 
    and (FileExists('C:\Program Files\MyProg\2.dll')) 
    and (FileExists('C:\Program Files\MyProg\3.ocx'))) 
then 
begin
    MsgBox('Не найдены необходимые компоненты.', mbInformation, MB_OK);
    Result:=false; 
  end;
end; //not iswin64
if iswin64 the begin
  if not ((RegKeyExists(HKLM64, 'SOFTWARE\SYSWOW64\MyProg')) 
    and (FileExists('C:\Program Files\MyProg\1.exe')) 
    and (FileExists('C:\Program Files\MyProg\2.dll')) 
    and (FileExists('C:\Program Files\MyProg\3.ocx'))) 
then 
begin
    MsgBox('Не найдены необходимые компоненты.', mbInformation, MB_OK);
    Result:=false; 
  end;
end; //iswin64
end;

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:17, 11-10-2011 | #3518