RegDBGetKeyValueEx возвращает -1 - PullRequest
0 голосов
/ 05 июня 2018

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

  1. Сначала обратитесь к этому разделу реестра "" ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Shared Tools \ Расширения веб-сервера \ 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;                    

Изображение

1 Ответ

0 голосов
/ 05 июня 2018

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

  • HKEY_LOCAL_MACHINE\SOFTWARE

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

Возможно, исследуйте 64-битный вариант здесь (REGDB_OPTION_WOW64_64KEY), если вам нужен 64-битный раздел реестра.


AppSearch : для простого поиска в реестре можно использовать AppSearch ( Просмотр системы поиска ).У меня нет времени, чтобы сделать образец для этого прямо сейчас.Вы также можете увидеть Просмотр системы поиска / Мастер .

...