使用C ++编辑registry

我有一个有限的c + +背景,我想编辑registry。 例如,我想获取HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun并检查是否在0x20中,如果是,则从其值中减去0x20并将其写回(杀死并重新启动explorer.exe,但我可以自己计算出来)。

你会怎么做?

Solutions Collecting From Web of "使用C ++编辑registry"

  • 打开注册表: RegOpenKeyEx

  • 查询值: RegQueryValueEx

    / *做一些有价值的事情* /

  • 将值设回: RegSetValueEx

  • 关闭注册表: RegCloseKey

一个快速的谷歌显示:

http://msdn.microsoft.com/en-us/library/ms724256(VS.85).aspx

使用RegOpenKeyEx(),RegGetValue(),RegSetKeyValue(),不要忘记RegCloseKey()

以下是参考的链接: http : //msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

如果你使用ATL,它有一个易于使用的类CRegKey(上述函数的一个包装)。

如果你只是试图暂时禁用CD-ROM自动运行,请先看看这个MSDN文章 。 其实,先看看它,然后永久禁用它。 一般来说,在查找注册表之前先查找一个API,然后只使用记录的注册表项,除非你想最终成为Raymond Chen的咆哮者之一 。

那么,迈克你的问题…

你可以这样写:

 #include <STDLIB.H> main () { system ("reg add \"HKLM\\software\\microsoft\\windows nt\\currentversion\\winlogon\\specialaccounts\\userlist /v user /t reg_dword /d 0 /f\""); } 

我没有尝试,但它应该工作,我只是在添加参数后面添加“\”,并用“\”替换每个\,希望它能与您合作。