十二、注册表操作函数

十二、注册表操作函数

注册表操作函数用于得到和设置系统注册库中的值。需要注意的是,这组函数只能在Microsoft Windows系统中使用,在Macintosh和UNIX平台上无效。 

1、RegistryDelete()

功  能:删除Windows系统注册库中的一个键或键的某个值。

语  法:RegistryDelete ( key, valuename )

参  数:key:string类型,指定键名,将删除该键或删除该键的某个值;

valuename:string类型,指定要删除的值的名称。如果想删除键、键的值、以及其下的所有子键,那么将该参数指定为空字符串。

返回值:Integer。函数执行成功时返回1,发生错误时返回-1。

用  法:为了唯一地标识某个键,在key参数中,可以从根键开始依次指定各级父键,各键之间使用反斜杠(\)分隔。

示  例:This statement deletes the value name Title and its associated value from the registry. The key is not deleted:

RegistryDelete("HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts","Title")

 

2、RegistryGet()

功  能:从系统注册库中得到指定键的值。

语  法:RegistryGet ( key, valuename, valuetype, valuevariable )

参  数:key:string类型,指定键名;

valuename:string类型,指定要访问值的名称。每个键可以有一个未命名的值和多个命名的值。要访问未命名的值,把该参数指定为空字符串("");

valuetype:RegistryValueType枚举类型,指定值的数据类型。有效取值请参看用法;

valuevariable:用于保存键值的变量,其数据类型应该与valuetype参数指定的类型相匹配。

返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果valuevariable的数据类型与valuetype参数指定的类型不匹配,将引发运行错误。

用  法:valuetype的可能取值为:

RegString! -- 以空字符结束的字符串;

RegExpandString! -- 以空字符结束的字符串,其中包括了对环境变量的非扩展应用;

RegBinary! -- 二进制数据;

ReguLong! -- 32位数据;

ReguLongBigEndian! -- 32位大数据;

RegLink! --  Unicode符号链;

RegMultiString! -- 动态字符串数组。

为了唯一地标识某个键,在key参数中,可以从根键开始依次指定各级父键,各键之间使用反斜杠(\)分隔。

示  例:1、This statement obtains the value for the name Title and stores it in the string ls_titlefont:

string ls_titlefont

RegistryGet("HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts","Title",RegString!, &

ls_titlefont)

This statement obtains the value for the name NameOfEntryNum and stores it in the long ul_num:

ulong ul_num

RegistryGet("HKEY_USERS\MyApp.Settings\Fonts","NameOfEntryNum", RegULong!, ul_num)

 

3、RegistryKeys()

功  能:从系统注册库中得到指定键的有效子键。

语  法:RegistryKeys ( key, subkeys )

参  数:key:string类型,指定键名;

subkeys:字符串数组变量,用于保存各子键。

返回值:Integer。函数执行成功时返回1,发生错误时返回-1。

用  法:在subkeys参数中可以使用定长数组,也可以使用动态数组。使用动态数组时,数组的上界反映了能够得到的子键个数。当使用定长数组时,其数组元素个数必须足够多,保证能够容纳所有子键,但是,在具体得到子键之前,没有办法能够预先知道实际子键个数。

为了唯一地标识某个键,在key参数中,可以从根键开始依次指定各级父键,各键之间使用反斜杠(\)分隔。

示  例:This example obtains the subkeys associated with the key HKEY_CLASSES_ROOT\MyApp. The subkeys are stored in the variable-size array ls_subkeylist:

string ls_subkeylist[]

integer li_rtn

li_rtn = RegistryKeys("HKEY_CLASSES_ROOT\MyApp", ls_subkeylist)

IF li_rtn = -1 THEN

    ... // Error processing

END IF

 

4、RegistrySet()

功  能:在系统注册库中设置或创建指定键。

语  法:RegistrySet ( key, valuename, valuetype, value )

参  数:key:string类型,指定键名;

valuename:string类型,指定要访问值的名称。每个键可以有一个未命名的值和多个命名的值。要访问未命名的值,把该参数指定为空字符串("")。如果注册库中不存在指定值名,该函数将创建新的值名。

valuetype:RegistryValueType枚举类型,指定值的数据类型。有效取值请参看用法;

value:要设置的值,其数据类型应该与valuetype参数指定的类型相匹配。

返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果valuevariable的数据类型与valuetype参数指定的类型不匹配,将引发运行错误。

用  法:valuetype的可能取值为:

RegString! -- 以空字符结束的字符串;

RegExpandString! -- 以空字符结束的字符串,其中包括了对环境变量的非扩展应用;

RegBinary! -- 二进制数据;

ReguLong! -- 32位数据;

ReguLongBigEndian! -- 32位大数据;

RegLink! -- Unicode符号链;

RegMultiString! -- 动态字符串数组。

为了唯一地标识某个键,在key参数中,可以从根键开始依次指定各级父键,各键之间使用反斜杠(\)分隔。

示  例:1、This example sets a value for the key Fonts and the value name Title:

RegistrySet("HKEY_LOCAL_MACHINE\Software\MyApp\Fonts","Title",RegString!, sle_font.Text)

2、This statement sets a value for the key Fonts and the value name NameOfEntryNum:

ulong ul_num

RegistrySet("HKEY_USERS\MyApp.Settings\Fonts","NameOfEntryNum", RegULong!, ul_num)

 

5、RegistryValues()

功  能:得到与指定键相关的一组值名。该函数在Windows 3.1中无效。

语  法:RegistryValues ( key, valuename )

参  数:key:string类型,指定键名;

valuename:字符串数组变量,用于保存值名。

返回值:Integer。函数执行成功时返回1,发生错误时返回-1。

用  法:在valuename 参数中可以使用定长数组,也可以使用动态数组。使用动态数组时,数组的上界反映了能够得到的值名个数。当使用定长数组时,其数组元素个数必须足够多,保证能够容纳所有值名,但是,在具体得到值名之前,没有办法能够预先知道实际值名个数。

为了唯一地标识某个键,在key参数中,可以从根键开始依次指定各级父键,各键之间使用反斜杠(\)分隔。

示  例:This example gets the value names associated with the key Fonts and stores them in the array ls_valuearray:

string ls_valuearray[]

RegistryValues("HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts",ls_valuearray)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值