注册表记录着软硬件的一些信息
对于程序开发者来说,注册表也是一个不错的存放信息的容器!有时候用注册表记录一些软件的重要参数,或者是记录当前某些值,使软件在下次执行时保持当前值。
DWORD SetRegistry(char *szRegPort, char *szKey, char *szValue)
{
char ValueName[128];
HKEY hkPort;
DWORD cbData = 256;
DWORD retCode, dwDisp;
if ((retCode=RegCreateKeyEx(HKEY_LOCAL_MACHINE, szRegPort, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &hkPort, &dwDisp)) == ERROR_SUCCESS)
{
lstrcpy(ValueName, szKey);
retCode = RegSetValueEx(hkPort, // Key handle returned from RegOpenKeyEx.
ValueName, // Name of value.
0, //reserved , must be null
REG_SZ, // Type of data.
(PBYTE)szValue, // Data buffer.
strlen(szValue)); // Size of data buffer.
RegCloseKey(hkPort);
}
return retCode;
}
DWORD QueryRegistry(char *szRegPort, char *szKey, char *szValue)
{
char ValueName[128];
HKEY hkPort;
BYTE bData[256]; // in registry the max length is banner user name
DWORD cbData = 256;
DWORD retCode;
DWORD dwType=REG_SZ;
if ((retCode = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szRegPort, 0, KEY_EXECUTE, &hkPort)) == ERROR_SUCCESS)
{
lstrcpy(ValueName, szKey);
retCode = RegQueryValueEx (hkPort, // Key handle returned from RegOpenKeyEx.
ValueName, // Name of value.
NULL, //reserved , must be null
&dwType, // Type of data.
bData, // Data buffer.
&cbData); // Size of data buffer.
if (retCode == ERROR_SUCCESS)
{
strcpy(szValue,(const char*)bData);
}
RegCloseKey(hkPort);
}
return retCode;
}
对于程序开发者来说,注册表也是一个不错的存放信息的容器!有时候用注册表记录一些软件的重要参数,或者是记录当前某些值,使软件在下次执行时保持当前值。
DWORD SetRegistry(char *szRegPort, char *szKey, char *szValue)
{
char ValueName[128];
HKEY hkPort;
DWORD cbData = 256;
DWORD retCode, dwDisp;
if ((retCode=RegCreateKeyEx(HKEY_LOCAL_MACHINE, szRegPort, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &hkPort, &dwDisp)) == ERROR_SUCCESS)
{
lstrcpy(ValueName, szKey);
retCode = RegSetValueEx(hkPort, // Key handle returned from RegOpenKeyEx.
ValueName, // Name of value.
0, //reserved , must be null
REG_SZ, // Type of data.
(PBYTE)szValue, // Data buffer.
strlen(szValue)); // Size of data buffer.
RegCloseKey(hkPort);
}
return retCode;
}
DWORD QueryRegistry(char *szRegPort, char *szKey, char *szValue)
{
char ValueName[128];
HKEY hkPort;
BYTE bData[256]; // in registry the max length is banner user name
DWORD cbData = 256;
DWORD retCode;
DWORD dwType=REG_SZ;
if ((retCode = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szRegPort, 0, KEY_EXECUTE, &hkPort)) == ERROR_SUCCESS)
{
lstrcpy(ValueName, szKey);
retCode = RegQueryValueEx (hkPort, // Key handle returned from RegOpenKeyEx.
ValueName, // Name of value.
NULL, //reserved , must be null
&dwType, // Type of data.
bData, // Data buffer.
&cbData); // Size of data buffer.
if (retCode == ERROR_SUCCESS)
{
strcpy(szValue,(const char*)bData);
}
RegCloseKey(hkPort);
}
return retCode;
}
本文介绍了一种使用C/C++在Windows环境下操作注册表的方法,包括如何设置和查询注册表键值。通过具体代码示例展示了如何利用Windows API函数RegCreateKeyEx和RegQueryValueEx进行注册表的写入和读取。
-----注册表的简单设置和查询函数&spm=1001.2101.3001.5002&articleId=1333292&d=1&t=3&u=1531c3d80e63448e99b7644705331e0e)
582

被折叠的 条评论
为什么被折叠?



