RegDBGetKeyValueEx返回-1

时间:2018-06-05 07:40:38

标签: installscript

我使用下面的installscript代码来确定是否安装了SharePoint。但它不起作用。该函数返回-1。不确定是什么问题。有人可以帮忙吗?我想在下面的步骤

  1. 首先到达此注册表位置“”SOFTWARE \ Microsoft \ Shared Tools \ Web Server Extensions \ 15.0“”

  2. 读取名称“SharePoint”及其值“已安装”

  3. 参考附图。

    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;                    
    

    Image

1 个答案:

答案 0 :(得分:0)

Installscipt :您的价值位于何处?您是否考虑过注册管理机构的64-32 bit部分?

  • HKEY_LOCAL_MACHINE\SOFTWARE

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

Perhaps investigate the 64-bit option hereREGDB_OPTION_WOW64_64KEY)如果您需要注册表的64位部分。

AppSearch :对于像这样的简单注册表检索,您可以使用AppSearch代替(System Search View)。我现在没有时间为此制作样品。您还可以看到System Search View / Wizard