2017-09-27 75 views
0

这种阅读REG_SZ是路径在注册表中的键值:无法使用Visual Basic网/工作室

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\appname.EXE\shell\open\command 

有一个关键

默认类型:REG_SZ与此内容:

"D:\programs\entry1\entry 2\appname.EXE" "%1" 

如何在字符串中获得“D:\ programs \ entry1 \ entry 2 \ appname.EXE”?我不能用通常的方法做到这一点,我猜这是由reg_sz类型造成的?

+1

使用[正确的RegistryView](https://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.openbasekey(v = vs.110).aspx)。 。 –

回答

0

REG_SZ包含一个字符串值,所以你应该能够得到(默认) - 值是这样的:

Dim regKey As Microsoft.Win32.RegistryKey 
regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\Classes\Applications\appname.EXE\shell\open\command", False) 
Dim s As String = regKey.GetValue("", "<value not found>").ToString 

或者,如果需要另一个值,则只需更改以下行:

Dim s As String = regKey.GetValue("anothervalue", "<value not found>").ToString 
+0

您好MatSnow,这条线 昏暗参考译文字符串= regKey.GetValue(“”,“<值未找到>”)的ToString 在 结束 异常未处理 System.NullReferenceException:“对象引用不设置到的实例一个东西。' regKey是无。 我认为原因是(默认)条目作为名称。 感谢您的想法, Juergen – Juergen

+0

@Juergen如果密钥不存在,则会发生此异常。 – MatSnow

+0

对我感到羞耻,对不起。感谢您的快速帮助!克林斯曼 – Juergen