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;