14

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

你会怎么做?

4

4 回答 4

35
于 2009-05-14T15:34:47.263 回答
2

使用 RegOpenKeyEx()、RegGetValue()、RegSetKeyValue(),别忘了 RegCloseKey()

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

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

于 2009-05-14T15:34:39.480 回答
2

如果您只是想暂时禁用 cd-rom 自动运行,请先查看这篇msdn 文章。实际上,在永久禁用它之前先看看它。一般来说,在弄乱注册表之前先寻找一个 API - 然后只使用记录在案的注册表项,除非你想最终成为 Raymond Chen咆哮的主题之一。

于 2009-05-14T15:44:50.173 回答
1

好吧,迈克为您的问题...

你可以这样写...

#include <STDLIB.H>

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

我没有尝试,但它应该可以工作,我只是在 add 参数后的文本周围添加了 \" ,并用 \ 更改了每个 \ 希望它适用于你......

于 2009-12-28T18:58:35.330 回答