我想更改 PocketPC 上的注册表值。我运行了以下代码:
if(enabled)
{
dwData = 120;
}
if(RegSetValueEx(HKEY_LOCAL_MACHINE, _T("System\\CurrentControlSet\\Control\\Power\\Timeouts\\BattSuspendTimeout"), 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD)))
{
return FALSE;
}
但它不会更改注册表项。有谁知道如何用c++设置注册表项值?
Thanks!
您正在做的事情有两个问题:
1:RegSetValueEx 不采用路径,仅采用值名称。所以需要先打开关键路径。
e.g.
HKEY key;
if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Control\\Power\\Timeouts", 0, 0, &key))
{
if(RegSetValueEx(key, _T("BattSuspendTimeout"), 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD)))
{
RegCloseKey(key);
return FALSE;
}
RegCloseKey(key);
}
2:注册表的该区域需要特权代码签名才能在所有 Windows Mobile 设备上运行。如果用户在首次运行或安装应用程序时对未知发布者问题说“是”,那么您可以在大多数当前的触摸屏 Windows 移动设备上摆脱它。如果您在该设备上收到“访问被拒绝”错误,那么您确实需要进行特权代码签名才能使该设备正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)