无法写入注册表

时间:2012-11-16 14:12:36

标签: c# registry

以下代码不会写入我在那里的注册表,但会与我尝试过的许多其他代码一起写入。它运行代码并没有任何回报。它似乎一直工作,直到我检查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。奇...

编辑发现问题... Write the registry value without redirect in Wow6432Node hans passant的第二个答案......它总是像那样愚蠢

1 个答案:

答案 0 :(得分: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并在flags中指定MOVEFILE_DELAY_UNTIL_REBOOT

相关问题