0

次のコードは、私がそこに持っているレジストリには書き込みませんが、私が試した他の多くのコードには書き込みます。コードを実行し、何もキックバックしません。regをチェックするまでは機能したようですが、何もありません。

私は適切な権限を持っていますが、なぜこのキーが特別なのか理解できません。手動で入力して作成することはできますが、それを行うにはこのプログラムが必要です。前もって感謝します。

string machineName = txtBox.Text;
RegistryKey subKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, machineName).OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", true);
subKey.SetValue("DeltmpfileOnReboot", @"cmd.exe /c RD /S /Q C:\data\tempFolder /f", RegistryValueKind.String);

キーが見つかりました...それはHKLM\SOFTWARE\Wow6432Nodeに魔法のように現れました。奇数...

編集問題が見つかりました... hanspassantによるWow6432Nodeの2番目の回答にリダイレクトせずにレジストリ値を書き込みます...それは常にそのようなばかげたものです

4

1 に答える 1

1

あなたのアプローチは間違っています。再起動時にファイルを削除したい場合は、 Win32 API を使用することをお勧めしますMoveFileEx

ここを参照してください:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365240(v=vs.85).aspx

と:

http://www.pinvoke.net/default.aspx/kernel32.MoveFileEx

ターゲットを null に設定しMOVEFILE_DELAY_UNTIL_REBOOT、フラグで指定するだけです。

于 2012-11-16T14:16:07.380 に答える