需要 vb.net 代码来查看/编辑离线硬盘的注册表

Posted

技术标签:

【中文标题】需要 vb.net 代码来查看/编辑离线硬盘的注册表【英文标题】:need vb.net code to view/edit registry for an offline hard drive 【发布时间】:2014-02-23 17:20:20 【问题描述】:

我知道如何在 vb.net 中进行正常的注册表操作,但是我很难找到有关如何在离线硬盘驱动器上进行相同操作的任何信息。我希望能够指定诸如 e:\windows\system32\config\software 之类的东西作为要使用的配置单元,而不是从当前加载的注册表配置单元加载数据。我知道我可以使用 reg.exe 来加载和卸载 hives,但看起来更干净的纯代码方法会更好。

【问题讨论】:

***.com/q/17148552/34397***.com/q/15695810/34397 嗯,这是在 c# 中使用 api 调用,正在寻找 vb.net。我想这是一个很好的起点,因为我没有比这更好的了。 Regloadkey 可以工作,我找到了一个工作一半的 vb.net 示例。任何人都知道是否可以使用 microsoft.win32? 【参考方案1】:

我知道这是一个相当古老的线程,但我有同样的问题。我试图找到离线驱动器的计算机名称。我已经有一个使用 process class 的 cmdline 子程序,并且文件名给了它“Cmd.exe”(底部的一个简单版本)。这个 sub 处理我在程序中使用的命令行命令。我很容易找到how to read the registry,但不知道如何在离线配置单元上这样做,经过一些more research 结合I already knew 这就是我最终检索到我想要的键值的结果加载的蜂巢:

Cmdline("reg load HKLM\offlinesys " & windrv & ":\Windows\system32\config\system") Dim readvalue = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\offlinesys\ControlSet001\Control\ComputerName\ComputerName", "ComputerName", Nothing)

这是我的 cmdline 子程序的基本版本,仅包含相关部分:

Sub Cmdline(ByVal cmd As String, ByVal excpt As Integer)

  If cmd Is Nothing Then
        Throw New ArgumentNullException(NameOf(cmd))
  End If

  Try
      Dim proc As Process = New Process
      Dim procinfo As New ProcessStartInfo With 
          .Arguments = "/c " & cmd & " 2>&1",
          .FileName = "cmd.exe",
          .RedirectStandardOutput = True,
          .UseShellExecute = False
           
      proc.StartInfo = procinfo
      proc.Start()
End Try
End Sub

【讨论】:

以上是关于需要 vb.net 代码来查看/编辑离线硬盘的注册表的主要内容,如果未能解决你的问题,请参考以下文章

将 HDD Serial # VB6 代码转换为 VB.NET 代码

vb.net(VS2010) vista下 修改注册表

数据网格视图更新,在 vb.net windows 窗体中编辑和删除,使用多个表来填充 datagridview

vb.net中的SQL事务语句

VB.net 在字符串中查找字符,然后显示找到的文本,包括字符

硬盘镜像和软盘镜像中内容的查看方法