c语言实现自动打开注册表,C语言对注册表的简单操作

Key有如文件夹,Value有如文件

Value组成:Name/Type/Data, 通常指某Value就是指其Name

在此之前,应当了解注册表的功能以及数据结构,不做解释

1.关于创建一个主键,以及创建相应的键值

HKEY hKEY;//最大(作用范围)的一个key值

HKEY tmpKey;//临时的key值

TCHAR tchData[64];//存储字符串

long lRet;//记录函数的返回值方便调试

DWORD dwSize;

LPCTSTR data_Set = "Software\\Microsoft\\Windows\\CurrentVersion\\";//示例的注册表操作路径

lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_WOW64_64KEY|KEY_READ,&hKEY);

上述代码,打开了data_Set所指向路径的注册表,hKEY作为注册表句柄

新建一个注册表,命名为test,主键为Name,类型为REG_SZ,键值为China

成功则可以在data_Set所指目录下,注意HKEY_LOCAL_MACHINE,找到一个test文件夹,

打开,有一个项:主键为Name,类型为REG_SZ,键值为China

lRet =RegCreateKey (hKEY, // 要打开键的句柄

"test", // 要打开子键的名字的地址

&tmpKey // 已打开句柄的缓存区的地址

);

lRet = RegSetValueEx(tmpKey, "Name",0,REG_SZ,LPBYTE("China"),6);

2.查询一个键值.....算了,上代码

HKEY hKEY;

HKEY tmpKey;

TCHAR tchData[64];

long lRet;

DWORD dwSize;

LPCTSTR data_Set = "Software\\Microsoft\\Windows\\CurrentVersion\\";

lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_WOW64_64KEY|KEY_READ,&hKEY);

if (ERROR_SUCCESS == lRet)

{

dwSize=sizeof(tchData);

//*************************查询一个键值***************************************************

// lRet = RegQueryValueEx( hKEY, // handle to key

//"DevicePath", // value name

//NULL, // reserved

//NULL, // type buffer

//(LPBYTE)tchData, // data buffer

// &dwSize // size of data buffer

// );

//if( lRet == ERROR_SUCCESS)

//{

// ShowMessage(tchData);

//}

//***********************新建一个键值****************************************************

lRet =RegCreateKey (hKEY, // 要打开键的句柄

"test", // 要打开子键的名字的地址

&tmpKey // 已打开句柄的缓存区的地址

);

lRet = RegSetValueEx(tmpKey, "Name",0,REG_SZ,LPBYTE("China"),6);

//**********************************设置一个键值****************************************

//lRet = RegSetValueEx(HKEY hKey,//要设置的键的句柄

//

//                                 LPCTSTR lpValueName,//要访问的键值的名称

//

//                                 LPDWORD lpReserved,//保留值

//

//                                 DWORD dwType,//要设置的数据的类型

//

//                                 const BYTE *lpData,//要设置的健值

//

//                                 DWORD cbData//数据的长度

//

//                                );

::RegCloseKey(hKEY); //程序结束,关闭打开的hKEY

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值