Во время установки setup.exe, если в реестре существует определенный ключ, я хочу прервать установку. Для этого я вызываю функцию сценария установки, используя настраиваемое действие в проекте установки щита. Код скрипта установки:
function MyFunction(hMSI)
// To Do: Declare local variables.
STRING szKey;
NUMBER nRootKey;
begin
// Set the root key to HKEY_LOCAL_MACHINE.
nRootKey = HKEY_LOCAL_MACHINE;
if (RegDBSetDefaultRoot (nRootKey) < 0) then
MessageBox ("First call to RegDBSetDefaultRoot failed.", SEVERE);
else
MessageBox ("Root key successfully set to HKEY_LOCAL_MACHINE.",
INFORMATION);
endif;
szKey = "SOFTWARE\\Test";
if (RegDBKeyExist (szKey)< 0) then
MessageBox ("Test is not present", SEVERE);
abort;
endif;
if (RegDBKeyExist (szKey)= 1) then
MessageBox ("Test is present", SEVERE);
abort;
endif;
// To Do: Write script that will be executed when MyFunction is called.
end;
Каждый раз я получаю сообщение «Тест отсутствует», хотя ключ «HKEY_LOCAL_MACHINE\SOFTWARE\Test» присутствует в реестре.
Я думаю, что я сделал что-то не так в сценарии или что-то упустил. Пожалуйста, помогите в этом.
https://community.flexerasoftware.com/showthread.php?139026-Check-if-a-registry-key-exists