应用程序中对注册表的编辑
来源:互联网 发布:2017双十一成交数据 编辑:程序博客网 时间:2024/05/19 02:45
在WinCE中的应用程序如需对注册表编辑,可使用如下几个函数:
我们重点使用RegOpenKeyEx,RegSetValueEx,RegQueryValueEx和RegCloseKey这几个函数,其功能如上面所介绍。对一个注册表操作,需先用RegOpenKeyEx打开,再用RegSetValueEx,RegQueryValueEx查询或设置,最后用RegCloseKey关闭。
下面是一个对注册表设置的例子:
void RegSwitch(LPCWSTR ImKey, LPCWSTR ImIconKey,
WCHAR * Im240X320, WCHAR * Im320X240, WCHAR * ImIcon)
{
LONG lret;
HKEY hKEY;
if(GetSystemMetrics(SM_CYSCREEN) > 240)
{
lret = RegOpenKeyEx(RESKEY,ImKey,0,KEY_READ,&hKEY);
if(lret==ERROR_SUCCESS)
{
RegSetValueEx(hKEY,VALUENAME,0,REG_SZ,
(LPBYTE)Im240X320,
sizeof(WCHAR)*(wcslen(Im240X320)+1));
lret = RegOpenKeyEx(RESKEY,ImIconKey,0,KEY_READ,&hKEY);
if(lret==ERROR_SUCCESS)
{
RegSetValueEx(hKEY,VALUENAME,0,REG_SZ,
(LPBYTE)ImIcon,
sizeof(WCHAR)*(wcslen(ImIcon)+1));
}
}
RegCloseKey(hKEY);
}
else
{
lret = RegOpenKeyEx(RESKEY,ImKey,0,KEY_READ,&hKEY);
if(lret==ERROR_SUCCESS)
{
RegSetValueEx(hKEY,VALUENAME,0,REG_SZ,
(LPBYTE)Im320X240,
sizeof(WCHAR)*(wcslen(Im320X240)+1));
lret = RegOpenKeyEx(RESKEY,ImIconKey,0,KEY_READ,&hKEY);
if(lret==ERROR_SUCCESS)
{
RegSetValueEx(hKEY,VALUENAME,0,REG_SZ,
(LPBYTE)ImIcon,
sizeof(WCHAR)*(wcslen(ImIcon)+1));
}
}
RegCloseKey(hKEY);
}
}
下面是一个对注册表查询的例子,该例子实现了查询注册表中的屏幕旋转键值,并使屏幕旋转:
#include "stdafx.h"
#include "windows.h"
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
DEVMODE devMode;
LONG lret;
LONG regStatus;
HKEY hKEY;
INT keyValue;
LPCWSTR subKey = L"System//GDI//Rotation";
LPCWSTR valueName = L"Angle";
DWORD pRegType,pRegKey,pRegKeySize;
lret = RegOpenKeyEx(HKEY_LOCAL_MACHINE,subKey,0,KEY_READ,&hKEY);
if(lret==ERROR_SUCCESS)
{
regStatus = RegQueryValueEx(hKEY,valueName,0,&pRegType,(LPBYTE)&pRegKey,&pRegKeySize);
if(regStatus == ERROR_SUCCESS && pRegType == REG_DWORD)
{
memset(&devMode,0x00,sizeof(devMode));
devMode.dmSize = sizeof(devMode);
devMode.dmFields = DM_DISPLAYORIENTATION;
ChangeDisplaySettingsEx(NULL,&devMode,NULL,CDS_TEST,NULL);
keyValue = (INT)pRegKey;
switch(keyValue)
{
case 90:
devMode.dmDisplayOrientation = DMDO_90;
break;
case 180:
devMode.dmDisplayOrientation = DMDO_180;
break;
case 270:
devMode.dmDisplayOrientation = DMDO_270;
break;
default:
devMode.dmDisplayOrientation = DMDO_0;
break;
}
devMode.dmFields = DM_DISPLAYORIENTATION;
if (DISP_CHANGE_SUCCESSFUL == ChangeDisplaySettingsEx(NULL,
&devMode, NULL, CDS_RESET, NULL))
{
RETAILMSG(1, (L"ChangeDisplaySettingsEx changed rotation angle to %d", keyValue));
}
else
{
RETAILMSG(1, (L"ChangeDisplaySettingsEx failed to change the rotation angle to %d", keyValue));
}
}
RegCloseKey(hKEY);
}
return 0;
}
函数中的参数具体意义可以参考PB自带的帮助。
- 应用程序中对注册表的编辑
- 在注册表中注册应用程序的数据文件
- 在注册表中注册应用程序的数据文件
- C#中对注册表的操作 读写注册表方法
- 怎样在asp.net web应用程序中获取注册表编辑权限?
- ASP中对注册表的操作
- C#中对注册表的操作
- TRegistry_delphi中对注册表的操作
- C#中对注册表的操作
- C#中对注册表的操作
- C#中对注册表的操作
- (轉)C#中对注册表的操作
- C#中对注册表的操作
- C#中对注册表的操作
- C#中对注册表的操作
- VC++ 中对注册表的操作
- C#中对注册表的操作
- C#中对注册表的操作
- [讨论]ERP顾问的面试技巧大分享,你有类似的技巧分享吗?
- 删除一个注册表健值
- Spring Log4j 配置手册
- 全屏浮动广告代码
- 添加输入法
- 应用程序中对注册表的编辑
- 建立HIVE注册表
- Composite UI Application Block 之自定义UIElement(二)
- asp.net在Repeater空件中使用Repeater
- 上拉电阻/0欧姆电阻/TTL&CMOS
- Linux应用程序开发--Hello
- Oracle 10g 安装出现错误“ORA-00988: 口令缺失或无效”
- IE与FireFox的showModalDialog
- eclipse配置weblogic