Windows CE Registry
来源:互联网 发布:听杨绛谈往事知乎 编辑:程序博客网 时间:2024/04/29 18:01
// Registry.cpp : Defines the entry point for the console application.
//
//ref doc:Windows Mobile Powerdd Device Features->File Systems and Storage Management Reference > Registry Reference > Registry Functions
//function:注册表操作API测试
//date:2009.08.17
#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>
#define dim(x) (sizeof(x)/sizeof(x[0]))
#define MYREGKEY TEXT("MyTest//Student")
int _tmain(int argc, _TCHAR* argv[])
{
DWORD dwStatus = 0;
HKEY hKey = NULL;
DWORD dwValue = 616;
DWORD cbData;
DWORD dwType;
TCHAR ValueData[64];
DWORD dwCnt = 0;
//RegCreateKeyEx:如果键值存在则打开,如果不存在则创建
dwStatus = RegCreateKeyEx(HKEY_USERS, MYREGKEY, 0,0, REG_OPTION_NON_VOLATILE,0,0,&hKey, NULL);
if(ERROR_SUCCESS !=dwStatus) {
printf("RegCreateKeyEx is error./r/n");
return -1;
}
//RegOpenKeyEx:打开指定的键
/* dwStatus = RegOpenKeyEx (HKEY_USERS, MYREGKEY, 0, 0, &hKey);
if(ERROR_SUCCESS !=dwStatus) {
printf("open reg fail/r/n");
return -1;
}
*/
//RegSetValueEx:设置key值
dwStatus = RegSetValueEx(hKey,TEXT("Name"),0,REG_SZ,(const BYTE *)TEXT("Michael Jordan"),sizeof(TEXT("Michael Jordan")));
if(ERROR_SUCCESS !=dwStatus) {
printf("sRegSetValueEx is error./r/n");
return -1;
}
dwStatus = RegSetValueEx(hKey,TEXT("Age"),0,REG_DWORD,(const BYTE *)&dwValue,sizeof(dwValue));
if(ERROR_SUCCESS !=dwStatus) {
printf("RegSetValueEx is error./r/n");
return -1;
}
dwStatus = RegSetValueEx(hKey,TEXT("Sex"),0,REG_SZ,(const BYTE *)TEXT("Male"),sizeof(TEXT("Male")));
if(ERROR_SUCCESS !=dwStatus) {
printf("RegSetValueEx is error./r/n");
return -1;
}
//RegFlushKey:回写保存设置的key值
dwStatus = RegFlushKey(hKey);
if(ERROR_SUCCESS !=dwStatus)
{
printf("RegFlushKey is error./r/n");
RegCloseKey(hKey);
return -1;
}
//RegQueryValueEx:获取key值
dwStatus = RegQueryValueEx(hKey, TEXT("Name"), NULL, &dwType, (LPBYTE) ValueData, (LPDWORD)&cbData);
if(ERROR_SUCCESS !=dwStatus)
{
printf("RegQueryValueEx is error./r/n");
RegCloseKey(hKey);
return -1;
}
printf("Student Name:%ls/r/n",ValueData);
/*
//RegDeleteKey:删除MYREGKEY的键,包括其子键。
//注意:调用RegDeleteKey删除MYREGKEY之前,需要先调用RegCloseKey关闭该键,否则会操作失败
RegCloseKey(hKey);
dwStatus = RegDeleteKey(HKEY_USERS,MYREGKEY);
if(ERROR_SUCCESS != dwStatus)
{
printf("RegDeleteKey is error./r/n");
RegCloseKey(hKey);
return -1;
}
*/
//RegDeleteValue:删除指定的键值
/* dwStatus = RegDeleteValue(hKey,TEXT("Age"));
if(ERROR_SUCCESS != dwStatus)
{
printf("RegDeleteValue is error./r/n");
RegCloseKey(hKey);
return -1;
}
*/
//RegQueryInfoKey:获取指定键的相应信息
/* dwStatus = RegQueryInfoKey (HKEY_USERS, NULL, NULL, 0, &dwCnt, NULL, NULL, NULL,NULL, NULL, NULL, NULL);
if(ERROR_SUCCESS != dwStatus)
{
printf("RegQueryInfoKey is error./r/n");
RegCloseKey(hKey);
return -1;
}
printf("There are %d SubKeys/r/n",dwCnt);
*/
//RegEnumKeyEx:枚举获取指定的键子键名、长度等
/* UINT index = 0;
DWORD dwNSize;
TCHAR szName[128];
dwStatus = RegEnumKeyEx (HKEY_USERS, index, szName, &dwNSize, NULL, NULL, NULL, NULL);
while (dwStatus == ERROR_SUCCESS) {
printf("szName:%ls,length:%d/r/n",szName,dwNSize);
dwStatus = RegEnumKeyEx (hKey, ++index, szName, &dwNSize, NULL, NULL, NULL, NULL);
}
*/
//RegEnumValue:枚举获取指定的键值名、内容长度等
/* UINT nCnt = 0;
TCHAR szName[128];
DWORD dwNSize;
BYTE bData[128];
DWORD dwDSize;
dwNSize = dim(szName);
dwDSize = dim(bData);
dwStatus = RegEnumValue (hKey, nCnt, szName, &dwNSize,NULL, &dwType, bData, &dwDSize);
while (dwStatus == ERROR_SUCCESS) {
dwNSize = dim(szName);
dwDSize = dim(bData);
dwStatus = RegEnumValue (hKey, ++nCnt, szName, &dwNSize,NULL, &dwType,bData, &dwDSize);
}
*/
//RegCloseKey:关闭打开的键
RegCloseKey(hKey);
return 0;
}
- Windows CE Registry
- Windows CE: Save and Restore the Registry
- Hive-based Registry Initialization (Windows CE 5.0)英文
- Hive-based Registry Initialization (Windows Embedded CE 6.0)英文
- Hive-based Registry Setup (Windows Embedded CE 6.0)英文
- CE registry hacks
- Windows CE
- Windows CE
- windows CE
- windows ce
- windows ce
- Windows CE
- Windows CE
- Working with Windows Registry
- Mastering Windows XP Registry
- Windows registry简单介绍
- Windows NT Registry
- Windows Registry Tutorial
- JavaScript继承详解(二)
- 脱壳方法..待续
- Ant build.xml
- 游标范例
- Windows下Subversion配置管理员指南
- Windows CE Registry
- javascript实用技巧--数组.
- C#中使用Monitor类、Lock和Mutex类来同步多线程的执行
- ant 全功能编译打包部署ftp启动服务的 build.xml
- Delphi 文件、目录等常用操作函数 - delphi - gliethttp
- JAVA中 Thread Dump 的方法
- 解决iframe中session丢失的问题
- 简单GTK+自定义控件的创建
- linux的一些常识归纳