注册表HKEY_LOCAL_MACHINE无法写入的问题

sfxyz7 2013-09-17 09:07:06
孙鑫老师第十二章文件和注册表操作在Win 7环境下 VS2010无法写入
void CJileView::OnRegWrite()
{
// TODO: Add your command handler code here
HKEY hKey;
RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\AAAA",&hKey);
RegSetValue(hKey,NULL,REG_SZ,"XXXX",strlen("XXXX"));
RegCloseKey(hKey);
}
打开注册表发现没有在HKEY_LOCAL_MACHINE\\SOFTWARE下新建项目,这是为什么?网上说与权限有关。谁能详细的解释下?



char RunStr[MAX_PATH] = "SOFTWARE\\Microsoft\\Windows\\CurrentverSion\\Run";
HKEY hResult;
RegOpenKey(HKEY_LOCAL_MACHINE, (LPCSTR)RunStr, &hResult);
RegSetValueEx(hResult, "控制服务器", 0, REG_SZ, (const unsigned char*)m_MainPath,
sizeof(char) * strlen(m_MainPath));
RegCloseKey(hResult);

此段代码可以在RunStr[MAX_PATH]下新建一个项目,但是修改RunStr[MAX_PATH] = "SOFTWARE\\AAA“;发现还是不能建立AAA,想知道该怎么做才能直接在SOFTWARE建立一个项目?
...全文
1982 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
warywwwhi 2014-07-18
  • 打赏
  • 举报
回复
权限问题。以管理员权限运行exe就OK了
七重孤独 2014-02-23
  • 打赏
  • 举报
回复
可能确实是权限问题。HKEY_CURRENT_USER下可以写入,HKEY_LOCAL_MACHINE下无法写入。
yaozhiyong110 2013-09-18
  • 打赏
  • 举报
回复
你照着书敲代码会敲错?
yaozhiyong110 2013-09-18
  • 打赏
  • 举报
回复
HKEY hKEY;//定义有关的hKEY,查询结束时关闭 LPCTSTR strKey = "Software\\AAA"; //打开根键 ::RegOpenKeyEx(/*HKEY_CURRENT_USER*/HKEY_LOCAL_MACHINE,//根键名称 NULL, //要访问的键的位置; 0, //必须为0; KEY_WRITE, //以写方式访问注册表; &hKEY); //hKEY保存此函数所打开的键的句柄。 DWORD dwDisposition; LPCTSTR lpOptions; lpOptions=NULL; //在根键下新建项 ::RegCreateKeyEx(hKEY, strKey, 0, (char *)lpOptions, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKEY, &dwDisposition); //关闭根键 ::RegCloseKey(hKEY);
oyljerry 2013-09-17
  • 打赏
  • 举报
回复
用administrator运行你的程序
自己用Delphi7写的一个小程序Show ALL-Files.exe,通过写入注册表来恢复系统中有关文件显示部分的默认注册表内容,并显示系统隐藏文件。注:需要系统管理员权限,方可正常修改注册表。 Show ALL-Files(附Delphi7源码).rar 文件大小:319KB 附注: 很多恶意软件和病毒伪装成系统隐藏文件,并通过修改注册表阻止用户显示系统隐藏文件,来达到不被删除的目的。 “文件夹选项”中的显示隐藏文件,显示系统文件,显示文件后缀,分别是通过注册表 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]下面的"Hidden","ShowSuperHidden","HideFileExt"项来控制的。 (类型均为REG_DWORD双字节值,系统默认值分别为2,0,1) 但是要实现通过“文件夹选项”来修改这些选项,还必须先分别通过注册表对应项的检测[HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt] (均是"CheckedValue"项,类型均为REG_DWORD双字节值,系统默认值分别为1,0,1) 而这道检测往往成为恶意软件和病毒攻击对象,通过篡改数值,类型,甚至删除注册表项,来隐藏“文件夹选项”中的控制项,或使其错乱,修改无效等。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧