InstallScript中枚举注册表某键下的子键值Sample代码

/*--------------------------------------------------------------*/

*

* InstallShield Example Script

*

* Demonstrates the RegDBQueryKey function.

*

* First, RegDBQueryKey is called to query the subkeys under the

* key KEY1.  The list returned by RegDBQueryKey is displayed

* in a dialog.

*

* Then RegDBQueryKey is called to query the subkeys under the

* key KEY2.  This list is also displayed in a dialog.

*

/*--------------------------------------------------------------*/

 

#define KEY1  "SOFTWARE"

#define KEY2  "SOFTWARE//Microsoft"

#define TITLE "RegDBQueryKey Example"

 

// Include Ifx.h for built-in InstallScript function prototypes.

#include "Ifx.h"

 

export prototype ExFn_RegDBQueryKey(HWND);

 

function ExFn_RegDBQueryKey(hMSI)

    STRING szMsg;

    NUMBER nReturn, nItem;

    LIST   listSubKeys, listNames;

begin

 

    // Disable the Back button in setup dialogs.

    Disable (BACKBUTTON);

 

    // Create the lists to hold values returned by RegDBQueryKey.

    listSubKeys  = ListCreate(STRINGLIST);

    listNames    = ListCreate(STRINGLIST);

 

    if ((listNames = LIST_NULL) || (listSubKeys  = LIST_NULL)) then

        MessageBox ("Unable to create necessary lists.", SEVERE);

        abort;

    endif;

 

    RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

 

    // Get the list of subkeys.

    nReturn = RegDBQueryKey(KEY1, REGDB_KEYS, listSubKeys );

 

    if (nReturn < 0) then

        MessageBox("First call to RegDBQueryKey failed.", SEVERE);

    else

        szMsg = "Subkeys under " + KEY1 + " key:";

        SdShowInfoList(TITLE, szMsg, listSubKeys );

    endif;

 

    // Get the list of subkeys.

     nReturn  = RegDBQueryKey(KEY2, REGDB_NAMES, listNames);

 

    if (nReturn < 0) then

        MessageBox("Second call to RegDBQueryKey failed.", SEVERE);

    else

        szMsg = "Named values under " + KEY2 + " key";

        SdShowInfoList(TITLE, szMsg, listNames);

    endif;

 

    // Remove the lists from memory.

    ListDestroy (listNames);

    ListDestroy (listSubKeys );

 

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值