天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 32|回复: 0

读取REG_MULTI_SZ 类型的注册表键值

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
#include "windows.h"
#include "tchar.h"
#include "conio.h"
#include "stdio.h"

#define MY_KEY _T("PathToMyRegistryKey\\MyRegistryKey") // Registry key
#define MY_VALUES _T("NameOfTheREG_MULTI_SZListOfValues") // Registry values
#define NEW_VALUE _T("MyNewValue") // New value
#define FIND_VALUE _T("AnExistingValue") // We will insert the new value after this one

int _tmain(int argc, _TCHAR* argv[])
{
    LONG lResult = 0;
    HKEY hKey = NULL;
    LPTSTR lpValues = NULL;
    LPTSTR lpValue = NULL;
    LPTSTR lpNewValues = NULL;
    LPTSTR lpNewValue = NULL;
    DWORD cbValues = 0;
    DWORD cbNewValues = 0;
    DWORD cbNewValue = 0;
    BOOL bFound = FALSE;

    __try
    {
        // OPEN THE REGISTRY KEY
        //
        _tprintf(_T("RegOpenKeyEx..."));
        lResult = RegOpenKeyEx(
            HKEY_LOCAL_MACHINE,
            MY_KEY,
            0,
            KEY_ALL_ACCESS,
            &hKey
        );
        if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; }
        _tprintf(_T("SUCCESS\n"));

        // READ THE REG_MULTI_SZ VALUES
        //
        // Get size of the buffer for the values
        _tprintf(_T("RegQueryValueEx..."));
        lResult = RegQueryValueEx(
            hKey,
            MY_VALUES,
            NULL,
            NULL,
            NULL,
            &cbValues
        );
        if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; }
        _tprintf(_T("SUCCESS\n"));

        // Allocate the buffer
        _tprintf(_T("malloc..."));
        lpValues = (LPTSTR)malloc(cbValues);
        if (NULL == lpValues) { _tprintf(_T("ERROR 0x%x\n"), GetLastError()); return 1; }
        _tprintf(_T("SUCCESS\n"));

        // Get the values
        _tprintf(_T("RegQueryValueEx..."));
        lResult = RegQueryValueEx(
            hKey,
            MY_VALUES,
            NULL,
            NULL,
            (LPBYTE)lpValues,
            &cbValues
        );
        if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; }
        _tprintf(_T("SUCCESS\n"));

        // SHOW THE VALUES
        //
        _tprintf(_T("\n**************************\n"));
        _tprintf(_T("OLD VALUES\n"));
        _tprintf(_T("**************************\n\n"));
        lpValue = lpValues;
        for (; '\0' != *lpValue; lpValue += _tcslen(lpValue) + 1)
        {
            // Show one value
            _tprintf(_T("%s\n"), lpValue);
        }
        _tprintf(_T("\n**************************\n\n"));

        // INSERT A NEW VALUE AFTER A SPECIFIC VALUE IN THE LIST OF VALUES
        //
        // Allocate a new buffer for the old values plus the new one
        _tprintf(_T("malloc..."));
        cbNewValue = (_tcslen(NEW_VALUE) + 1) * sizeof(TCHAR);
        cbNewValues = cbValues + cbNewValue;
        lpNewValues = (LPTSTR)malloc(cbNewValues);
        if (NULL == lpNewValues) { _tprintf(_T("ERROR 0x%x\n"), GetLastError()); return 1; }
        _tprintf(_T("SUCCESS\n"));

        // Find the value after which we will insert the new one
        lpValue = lpValues;
        lpNewValue = lpNewValues;
        bFound = FALSE;
        for (; '\0' != *lpValue; lpValue += _tcslen(lpValue) + 1)
        {
            // Copy the current value to the target buffer
            memcpy(lpNewValue, lpValue, (_tcslen(lpValue) + 1) * sizeof(TCHAR));

            if (0 == _tcscmp(lpValue, FIND_VALUE))
            {
                // The current value is the one we wanted to find
                bFound = TRUE;

                // Copy the new value to the target buffer
                lpNewValue += _tcslen(lpValue) + 1;
                memcpy(lpNewValue, NEW_VALUE, (_tcslen(NEW_VALUE) + 1) * sizeof(TCHAR));
                lpNewValue += _tcslen(NEW_VALUE) + 1;
            }
            else
            {
                // This is not the value we want, continue to the next one
                lpNewValue += _tcslen(lpValue) + 1;
            }
        }
        if (!bFound)
        {
            // We didn't find the value we wanted. Insert the new value at the end
            memcpy(lpNewValue, NEW_VALUE, (_tcslen(NEW_VALUE) + 1) * sizeof(TCHAR));
            lpNewValue += _tcslen(NEW_VALUE) + 1;
        }
        *lpNewValue = *lpValue;

        // SHOW THE NEW VALUES
        //
        _tprintf(_T("\n**************************\n"));
        _tprintf(_T("NEW VALUES\n"));
        _tprintf(_T("**************************\n\n"));
        lpNewValue = lpNewValues;
        for (; '\0' != *lpNewValue; lpNewValue += _tcslen(lpNewValue) + 1)
        {
            // Show one value
            _tprintf(_T("%s\n"), lpNewValue);
        }
        _tprintf(_T("\n**************************\n\n"));

        // WRITE THE NEW VALUES BACK TO THE KEY
        //
        _tprintf(_T("RegSetValueEx..."));
        lResult = RegSetValueEx(
            hKey,
            MY_VALUES,
            NULL,
            REG_MULTI_SZ,
            (LPBYTE)lpNewValues,
            cbNewValues
        );
        if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; }
        _tprintf(_T("SUCCESS\n"));
    }
    __finally
    {
        // Clean up
        //
        if (NULL != lpValues) { free(lpValues); }
        if (NULL != lpNewValues) { free(lpNewValues); }
        if (NULL != hKey) { RegCloseKey(hKey); }

        //_tprintf(_T("\n<<PRESS ANY KEY>>\n"));
        //_getch();
    }

    return 0;
}
[code]
// 此模板来自http://blogs.msdn.com/b/alejacma/archive/2009/11/12/how-to-manipulate-reg-multi-sz-values-from-the-registry-c.aspx[/code]

 

 

 

 

读取REG_MULTI_SZ 类型的注册表键值

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=92825][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
读取REG_MULTI_SZ 类型的注册表键值

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
平岗膜材(注意:这里可能存在一定的品牌或名称上的混淆,因为“平岗”并不是一个广为人知的膜材品牌,但考虑到可能是对类似“平冈”膜材的误写或类似产品的指代,以下分析将基于膜材的一般特性和“平冈”膜材的类似属性进行)在多个领域有着广泛的应用,并以其独特的性能特点在市场上占据一席之地。以下是对平岗膜材(或类似产品)的详细分析:
[b]一、品牌与背景[/b]
尽管“平岗膜材”不是一个明确的品牌名称,但可能指的是与“平冈”类似的高性能膜材产品。平冈膜材源自日本,以其优异的性能在全球市场上享有盛誉。
[b]二、产品特点[/b]
厚度与定制性:平岗膜材的厚度通常在0.03毫米至0.2毫米之间,且可根据客户需求进行定制。这种灵活性使得它能够满足不同应用场景的具体要求。
高透明度与抗紫外线性能:膜材的透明度极高,可达到90%以上,即使在弱光环境下也能清晰观察物体。同时,它具备出色的抗紫外线性能,有效抵御太阳紫外线的侵害,保护内部物体免受紫外线损伤。
高强度与耐久性:平岗膜材的抗拉强度极高,每平方厘米可达500公斤以上,确保在各种环境条件下都能保持稳定性和安全性。其耐久性能卓越,能够在长期使用中保持稳定的性能表现。
自洁性与透气性:部分平岗膜材表面经过特殊处理,具备自洁功能,能够自然保持清洁,减少维护成本。膜材还具有良好的透气性能,有助于保持内部环境的舒适度和空气流通。
其他特性:平岗膜材还可能具备耐化学性、防水性、阻燃性、耐温性等多种优异性能。这些特性使得它在多种恶劣环境下都能保持稳定的性能表现。
[b]三、应用领域[/b]
平岗膜材广泛应用于建筑、农业、工业等多个领域:
建筑领域:作为屋顶、墙面、遮阳篷等建筑材料使用,提升建筑的美观性和实用性。特别适用于大型公共建筑、体育场馆等需要高性能膜材的场所。
农业领域:在温室结构中作为覆盖材料使用,能够有效调节内部温度和光线条件,提高农作物的生长效率和品质。
工业领域:在化工、食品、医药等行业中作为设备内衬或包装材料使用,提供耐腐蚀、耐高温的解决方案。
[b]四、市场前景与发展趋势[/b]
随着科技的不断进步和市场需求的持续增长,高性能膜材的应用领域将不断拓展。平岗膜材(或类似产品)凭借其优异的性能和广泛的应用领域在市场上具有广阔的发展前景。未来,随着技术的不断创新和产品的持续优化升级,平岗膜材将在更多领域发挥重要作用并满足客户的多样化需求。
请注意,以上分析基于膜材的一般特性和类似产品的属性进行推测和归纳。由于“平岗膜材”并非一个明确的品牌名称且信息有限,因此部分描述可能存在一定的不确定性。在实际应用中,建议根据具体产品的技术规格和性能参数进行评估和选择。

 

 

 

 

读取REG_MULTI_SZ 类型的注册表键值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 12:25 , Processed in 0.122219 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表