2016-10-02 8 views
0

アプリケーションのインストールパスを関連するレジストリキー(この場合は "HKEY_LOCAL_MACHINE¥SOFTWARE¥コンピュータおよび構造体¥SAP2000¥18¥Install path")から読み込む必要があります。 。Visual Basic.net。レジストリキーを読み込もうとしていません

私は次のことを試してみました:

ProgramPath = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Computers and Structures, Inc.\SAP2000\18", "Install path", Nothing) 

何も結果に。

はまた、次のことを試してみました:なし成功を収めて

ProgramPath = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Computers and Structures, Inc.\\SAP2000\\18\\Install path", True) 

のいずれか。

Here is how my registry looks like

私が間違って何をしているのですか? "Computers and Structures、Inc."の両方の空白または特殊文字(、。)に問題がある可能性があります。または「インストールパス」にありますか?

これについての光は本当に感謝しています。前もって感謝します。自分の価値観がすべて正しい場合

+0

http://stackoverflow.com/questions/9491958/registry-getvalue-always-return-null – Mino

答えて

0

はこの私

Dim txt As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion", "ProductName", "") 

のために働くので、むしろ何も

+0

ありがとう、Rob、ありがとうございます。結果はまだ "Nothing"です。 – darkjmf

+0

別の投稿があります:http://stackoverflow.com/questions/9491958/registry-getvalue-always-return-nullこれは、 "nullを返した場合、ビルドアーキテクチャを任意のCPUに設定します。ビットと64ビットのレジストリは異なっている」と語った。 - 助けになるかもしれない? – Rob

1

ユーレカよりも「」使用してみてください!

最終的に私はレジストリの64ビットブランチ( "HKEY_LOCAL_MACHINE \ SOFTWARE \ Computers and Structures、Inc. \ SAP2000 \ 18")から読みたいと思っていましたが、 32ビットブランチ( "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Computers and Structures、Inc. \ SAP2000 \ 18")には "\ 18"サブキーがないため、エラーが発生します。

Dim regVersion64 As Microsoft.Win32.RegistryKey = Microsoft.Win32.RegistryKey.OpenBaseKey _ 
            (Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Registry64). 
            OpenSubKey("SOFTWARE\Computers and Structures, Inc.\SAP2000\18") 
Dim ProgramPath As String = regVersion64.GetValue("Install path") 

はあなたの助けありがとうございました、そしてこのスレッドが他のに役立ちます願っています:一度のミスがあった場所、https://stackoverflow.com/a/20910975/6912725

で解決策を見つけることは本当に簡単だった最終的なコードが似知ら

人。

関連する問題