RegDBGetKeyValueEx возвращает -1

Я использую приведенный ниже код сценария установки, чтобы определить, установлен ли SharePoint или нет. но это не работает. Функция возвращает -1. Не уверен, в чем проблема. может кто-нибудь помочь? Я хочу сделать следующие шаги

  1. Сначала перейдите в это место реестра "" SOFTWARE \ Microsoft \ Shared Tools \ Web Server Extensions \ 15.0 ""

  2. Прочтите название «SharePoint» и его значение «Установлено».

см. прикрепленное изображение.

function IsSharePointInstalled()
STRING szKey, svValue, szName;
NUMBER nvType, nvSize;

begin           
    RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);        
    szKey = "SOFTWARE\\Microsoft\\Shared Tools\\Web Server 
             Extensions\\15.0";         
    szName = "SharePoint";          

    if(RegDBKeyExist (szKey) >=1) then          
        MessageBox("Key found", INFORMATION);       

    if(RegDBGetKeyValueEx(szKey, szName, nvType, svValue, nvSize) < 0) then
        MessageBox("Failed to get value", INFORMATION);
    else                        
        MessageBox("Successfully got value", INFORMATION);
    endif;
   endif;

RegDBSetDefaultRoot(HKEY_CLASSES_ROOT);                 
end;                    

Изображение


person Dharmesh Fichadiya    schedule 05.06.2018    source источник


Ответы (1)


Installscipt: где находится ваша ценность? Вы учли разделы реестра 64- по сравнению с 32 bit?

  • HKEY_LOCAL_MACHINE\SOFTWARE

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

person Stein Åsmul    schedule 05.06.2018