对于我的程序,我希望它检查是否已经安装了Visual C ++,并且从一点点Google搜索,我可以通过检查注册表项来检查它们是否已安装: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx
问题是,当我实际运行程序时,没有任何反应。我尝试以管理员身份运行它,但没有任何事情发生。这是我的代码:
Imports Microsoft.Win32
Public Class Form1
Public Sub Form1_Load()
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x64", True)
If Not regKey Is Nothing Then
MsgBox("Found")
Else
MsgBox("Not Found")
End If
End Sub
End Class
我不确定是否正确输入或问题是什么。
答案 0 :(得分:1)
根据MSDN链接,您应该从本地计算机密钥读取,而不是当前用户密钥:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x64]
您应该尝试更改代码中的regKey
行,如下所示:
regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE...
' change this --> ^^^^^^^^^^^^
编辑 - 关于您的表单没有做任何事情:您的Form1_Load
函数永远不会被调用,因为它没有正确的签名。将您的Form1_Load
功能签名更改为:
Protected Overrides Sub OnLoad(e As EventArgs)
Dim regKey As RegistryKey
...
您可能必须以管理员身份运行Visual Studio才能从本地计算机密钥读取注册表。