Vb6 从windows注册表读取值?

Vb6 从windows注册表读取值?,vb6,registry,registrykey,Vb6,Registry,Registrykey,我正在开发一个程序,该程序将安装在工厂车间的多台计算机上。该程序有一个登录屏幕,其中一个要求是根据计算机自动输入机器名称。所以我决定在HKEY_LOCAL_机器上放一把带有机器名称的钥匙是个好主意,这样员工就不会弄乱它了。唯一的问题是,我不知道如何从注册表中读取密钥 我发现代码似乎在创建一个键并读/写它,但我只需要读它,我不打算做一个或写一个。这是代码 Dim strString As String Dim cdReg As New registryfncs cdReg.CreateKey ("

我正在开发一个程序,该程序将安装在工厂车间的多台计算机上。该程序有一个登录屏幕,其中一个要求是根据计算机自动输入机器名称。所以我决定在HKEY_LOCAL_机器上放一把带有机器名称的钥匙是个好主意,这样员工就不会弄乱它了。唯一的问题是,我不知道如何从注册表中读取密钥

我发现代码似乎在创建一个键并读/写它,但我只需要读它,我不打算做一个或写一个。这是代码

Dim strString As String
Dim cdReg As New registryfncs
cdReg.CreateKey ("HKEY_LOCAL_MACHINE\Software\Expert Resource Management")

strString = cdReg.SetStringValue("HKEY_LOCAL_MACHINE\Software\Expert Resource Management", "Owner", Date)
strString = cdReg.GetStringValue("HKEY_LOCAL_MACHINE\Software\Expert Resource Management", "Owner")
Private Sub Form_Load()
Test

End Sub

Private Function Registry_Read(Key_Path, Key_Name) As Variant

On Error Resume Next

Dim Registry As Object
Set Registry = CreateObject("WScript.Shell")
Registry_Read = Registry.RegRead(Key_Path & Key_Name)
End Function

Private Sub Test()

txtMachine.Text = Registry_Read("HKEY_LOCAL_MACHINE\", "Test Machine")
End Sub

我想知道这是正确的方法还是我彻底迷路了。

获取本地机器名称的简单方法是:

Dim UserDomain As String
UserDomain = Environ("USERDOMAIN")
这需要NT或更高版本,但我认为这不是问题,尽管它是VB6

如果您还需要用户名:

Dim UserName As String
UserName = Environ("USERNAME")
应该比注册更容易。还有一种API方法,但这应该是可行的

它也可以从
HCU\Volatile Environment\UserDomain
和UserName中获得,但如果给定子键名称,我将继续使用
Environment
方法(如果需要,可以读取自定义名称)


为完整起见,不使用VB命名空间的.NET版本应为:

Dim UserDomain As String = 
     = Environment.GetEnvironmentVariable("USERDOMAIN")

获取本地计算机名称的简单方法是:

Dim UserDomain As String
UserDomain = Environ("USERDOMAIN")
这需要NT或更高版本,但我认为这不是问题,尽管它是VB6

如果您还需要用户名:

Dim UserName As String
UserName = Environ("USERNAME")
应该比注册更容易。还有一种API方法,但这应该是可行的

它也可以从
HCU\Volatile Environment\UserDomain
和UserName中获得,但如果给定子键名称,我将继续使用
Environment
方法(如果需要,可以读取自定义名称)


为完整起见,不使用VB命名空间的.NET版本应为:

Dim UserDomain As String = 
     = Environment.GetEnvironmentVariable("USERDOMAIN")

我弄明白了,我需要读一把钥匙,我在HKEY_LOCAL_机器上做的,叫做测试机器,我可以输入任何我需要的字符串。这是密码

Dim strString As String
Dim cdReg As New registryfncs
cdReg.CreateKey ("HKEY_LOCAL_MACHINE\Software\Expert Resource Management")

strString = cdReg.SetStringValue("HKEY_LOCAL_MACHINE\Software\Expert Resource Management", "Owner", Date)
strString = cdReg.GetStringValue("HKEY_LOCAL_MACHINE\Software\Expert Resource Management", "Owner")
Private Sub Form_Load()
Test

End Sub

Private Function Registry_Read(Key_Path, Key_Name) As Variant

On Error Resume Next

Dim Registry As Object
Set Registry = CreateObject("WScript.Shell")
Registry_Read = Registry.RegRead(Key_Path & Key_Name)
End Function

Private Sub Test()

txtMachine.Text = Registry_Read("HKEY_LOCAL_MACHINE\", "Test Machine")
End Sub

我把值输入到表单上的一个只读文本框中。

我想出来了,我需要读取我在HKEY_LOCAL_机器上制作的一个键,名为Test MACHINE,我可以输入我需要的任何字符串。这是密码

Dim strString As String
Dim cdReg As New registryfncs
cdReg.CreateKey ("HKEY_LOCAL_MACHINE\Software\Expert Resource Management")

strString = cdReg.SetStringValue("HKEY_LOCAL_MACHINE\Software\Expert Resource Management", "Owner", Date)
strString = cdReg.GetStringValue("HKEY_LOCAL_MACHINE\Software\Expert Resource Management", "Owner")
Private Sub Form_Load()
Test

End Sub

Private Function Registry_Read(Key_Path, Key_Name) As Variant

On Error Resume Next

Dim Registry As Object
Set Registry = CreateObject("WScript.Shell")
Registry_Read = Registry.RegRead(Key_Path & Key_Name)
End Function

Private Sub Test()

txtMachine.Text = Registry_Read("HKEY_LOCAL_MACHINE\", "Test Machine")
End Sub

我将值输入到表单上的文本框中,该文本框是只读的。

这里有很多解决方案:。到底是什么问题?您测试了代码吗?我输入了代码并输入了所需的值,但结果表明
registryfncs
不是本机vb6 declare对象。我不知道它从哪里来。我正在浏览一篇关于在vb6中读取注册表项的谷歌搜索文章,但没有一篇对我有真正的帮助,我不确定使用什么和不使用什么。这里有很多解决方案:。到底是什么问题?您测试了代码吗?我输入了代码并输入了所需的值,但结果表明
registryfncs
不是本机vb6 declare对象。我不知道它从哪里来。我正在浏览一篇关于在vb6中读取注册表项的谷歌搜索文章,但没有一篇对我有帮助,我不知道该用什么,不该用什么。