在Vb.net中编辑注册表

时间:2011-06-12 22:40:25

标签: vb.net registry

我需要在vb.net(2010)中编辑注册表我知道如何在.reg文件中编辑它,但在Visual Basic 2010中却没有,如果它有助于这是代码

    Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
"dontdisplaylastusername"=dword:00000000
"legalnoticecaption"="                                             Justin Tech"
"legalnoticetext"="This computer system, including all related equipment, is the property of the Justint Tech and is solely for uses authorized by jUSITN tECH. You have no right to privacy on the system, and all information and activity 

on the system may be monitored.  Any unauthorized use of the system may result in disciplinary action, civil or criminal penalties."
"shutdownwithoutlogon"=dword:00000001
"undockwithoutlogon"=dword:00000001

2 个答案:

答案 0 :(得分:5)

Microsoft.Win32.RegistryKey类将为您提供读取,修改和删除注册表项和值所需的所有功能。

例如:

using Microsoft.Win32;

...

RegistryKey myKey = Registry.LocalMachine.OpenSubKey(
       @"SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system", true);

if(myKey == null)
{
  myKey = Registry.LocalMachine.CreateSubKey(
             @"SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system",
             RegistryKeyPermissionCheck.ReadWriteSubTree);
}

myKey.SetValue("dontdisplaylastusername", 0, RegistryValueKind.DWord);
myKey.SetValue("legalnoticecaption", "Justin Tech", RegistryValueKind.String);
myKey.SetValue("legalnoticetext", "This computer system...", 
                                               RegistryValueKind.String);
myKey.SetValue("shutdownwithoutlogon", 1, RegistryValueKind.DWord);
myKey.SetValue("undockwithoutlogon", 1, RegistryValueKind.DWord);

子项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies \system实际上是存在的,我只展示了一项测试,如果您要创建自己的密钥和值,那么就可以进行测试。

答案 1 :(得分:2)

作为直接在VB.NET中使用注册表项的替代方法,您可以使用以下代码直接执行.reg文件:

Process.Start("regedit.exe", "fileName.reg /s")

/ s是静默运行它。这里唯一的问题是,您可能会遇到其他人更改.reg文件的可能性,从而危及您的安全性。但是,如果将.reg文件放在中心位置并将其设置为只读,则可以对计算机执行此操作。这将允许您在不更改代码的情况下更改.reg文件的内容。