管理提醒: 本帖被 xoom 执行加亮操作(2011-06-28)
下面是一段屏幕旋转结果的注册表保存代码,保存成功了,但是下次开机屏幕还是默认不旋转的,怎样才能使下次开机能保存关机前设置的结果啊?请高手指点!
//注册表保存:未成功!
void RegSaveRotate(DWORD value)
{
DWORD rvalue=0;
// set tmp value
switch(value)
{
// CE store the short type data low-high upside down
case DMDO_0:
rvalue=0;
break;
case DMDO_90:
rvalue=0x5A; // 5A
break;
case DMDO_180:
rvalue=0xB4; // B4
break;
case DMDO_270:
rvalue=0x010E; // 010E
break;
default:
rvalue=0;
break;
}
// set value
HKEY hKEY;
LPCTSTR data_Set=_T("System\\GDI\\ROTATION");
long ret0=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_ALL_ACCESS, &hKEY);
if(ret0!=ERROR_SUCCESS)
{
DWORD dwDisposition;
::RegCreateKeyEx(HKEY_LOCAL_MACHINE,_T("System\\GDI\\ROTATION"),
0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS
, NULL, &hKEY, &dwDisposition) ;
}
BYTE lm=0;
long ret1=::RegSetValueEx(hKEY,_T("Angle"),0,REG_DWORD_LITTLE_ENDIAN,(LPBYTE)&rvalue,sizeof(rvalue));
ret1=::RegSetValueEx(hKEY,_T("LandscapeMode"),0,REG_BINARY,(LPBYTE)&lm,sizeof(lm));
long ret2=::RegCloseKey(hKEY);
}