Столкнулся с такой проблемой, на Vista X64 в реестре программа писала значение в ветку:
HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\MyProgram
через regedit посмотрел куда она пишет на самом деле:
HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\MyProgram
после обновления программы т.к. вистализацию отключил теперь не могу прочитать эту ветку.
вот пробую напрямую прочитать через RegOpenKeyEx с ключом KEY_WOW64_32KEY, но пишет что нет такой ветки
Public Function OpenSubKey(ByVal namePath As String, ByVal name As String) As String
Dim key As IntPtr = New IntPtr(&H80000001)
Dim subKeyHandle As IntPtr
Dim result As Integer = WinAPI.RegOpenKeyEx(key, namePath, 0, &H20019 Or &H200, subKeyHandle)
If (result = 0) Then
Dim lpType As Integer = 0
Dim lpcbData As Integer = 0
Dim num3 As Integer = WinAPI.RegQueryValueEx(subKeyHandle, name, Nothing, (lpType), Nothing, lpcbData)
If (lpcbData > 0) Then
Dim buffer As New StringBuilder(CInt(lpcbData / 2))
num3 = WinAPI.RegQueryValueEx(subKeyHandle, name, Nothing, (lpType), buffer, (lpcbData))
Return buffer.ToString()
End If
End If
Return String.Empty
End Function