找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1088|回复: 4

[每日一码] ARX注册表操作函数集

[复制链接]

已领礼包: 13个

财富等级: 恭喜发财

发表于 2016-10-12 08:35:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
const TCHAR *
        RegGetString(HKEY hKey, const TCHAR *subKey, const TCHAR *name)
{
        HKEY hSubKey;
        DWORD type;
        static TCHAR value[4096];
        DWORD size = sizeof(value);

        value[0] = _T('\0');
        if ( RegOpenKeyEx(hKey, subKey, 0, KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS )
        {
                if ( (RegQueryValueEx(hSubKey, name, 0, &type, (LPBYTE)value, &size) != ERROR_SUCCESS) ||
                        (type != REG_SZ) )
                        value[0] = _T('\0');
                RegCloseKey(hSubKey);
        }

        return value;
}

int
        RegPutString(HKEY hKey, const TCHAR *subKey, const TCHAR *name, const TCHAR *value)
{
        HKEY hSubKey;
        DWORD disp;
        int retval = 0;

        if ( RegCreateKeyEx(hKey, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hSubKey, &disp) == ERROR_SUCCESS )
        {
                if ( RegSetValueEx(hSubKey, name, 0, REG_SZ, (LPBYTE)value, (_tcslen(value) + 1) * sizeof(TCHAR)) == ERROR_SUCCESS )
                        retval = 1;
                RegCloseKey(hSubKey);
        }
        return retval;
}

int
        RegGetInt(HKEY hKey, const TCHAR *subKey, const TCHAR *name)
{
        HKEY hSubKey;
        DWORD type;
        DWORD value = 0;
        DWORD size = sizeof(value);
        if ( RegOpenKeyEx(hKey, subKey, 0, KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS )
        {
                if ( (RegQueryValueEx(hSubKey, name, 0, &type, (LPBYTE)&value, &size) != ERROR_SUCCESS) ||
                        (type != REG_DWORD) )
                        value = 0;
                RegCloseKey(hSubKey);
        }
        return value;
}

int
        RegPutInt(HKEY hKey, const TCHAR *subKey, const TCHAR *name, int value)
{
        HKEY hSubKey;
        DWORD disp;
        int retval = 0;
        if ( RegCreateKeyEx(hKey, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hSubKey, &disp) == ERROR_SUCCESS )
        {
                if ( RegSetValueEx(hSubKey, name, 0, REG_DWORD, (LPBYTE)&value, sizeof(value)) == ERROR_SUCCESS )
                        retval = 1;
                RegCloseKey(hSubKey);
        }
        return retval;
}

int RegPut_B (HKEY hKey,const TCHAR  *subKey,const TCHAR  *name,BYTE ReSetContent_B[65536])
{
        //设置二进制值函数
        int i=0; //操作结果:1==succeed
        if(RegOpenKeyEx(hKey,subKey,0,KEY_WRITE,&hKey)==ERROR_SUCCESS)
        {
                i=1;
                if(RegSetValueEx(hKey,name,NULL,REG_BINARY,ReSetContent_B,65536)!=ERROR_SUCCESS)
                {
                        //AfxMessageBox("错误:无法设置有关的注册表信息");
                        i=0;
                }
                RegCloseKey(hKey);
        }
        else
        {
                //AfxMessageBox("错误:无法查询有关的注册表信息");
                i=0;
        }
        return i;
}

int RegGet_B(HKEY hKey, const TCHAR *subKey, const TCHAR *name, BYTE value_B[65536])
{
        HKEY hSubKey;
        DWORD type;
        int rt=0; //操作结果:1==succeed
        DWORD size = 65536; //buffsize
        if ( RegOpenKeyEx(hKey, subKey, 0, KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS )
        {
                rt = 1;
                if ( (RegQueryValueEx(hSubKey, name, 0, &type, (LPBYTE)value_B, &size) != ERROR_SUCCESS) ||
                        (type != REG_BINARY) )
                        rt = 0;
                RegCloseKey(hSubKey);
        }
        return rt;

}

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1个

财富等级: 恭喜发财

发表于 2016-11-28 17:26:19 | 显示全部楼层
正需要,支持楼主大人了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 112个

财富等级: 日进斗金

发表于 2016-12-5 16:47:42 | 显示全部楼层
非常好用,谢谢楼主分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 184个

财富等级: 日进斗金

发表于 2017-1-12 00:32:12 | 显示全部楼层
//HKEY_CURRENT_USER
//Software\\Autodesk\\AutoCAD\\R20.1\\ACAD-F001:804\\FixedProfile\\General
读取不了ISOHatch这个键值?
VS2012 objectarx2016 cad2016
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2017-7-14 19:52:55 | 显示全部楼层
怎么用啊!!!!!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 15:18 , Processed in 0.322038 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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