Столкнулся с такой проблемой, на 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
Здравствуйте, andreypro, Вы писали:
A>Столкнулся с такой проблемой, на Vista X64 в реестре программа писала значение в ветку:
A>HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\MyProgram
A>через regedit посмотрел куда она пишет на самом деле:
A>HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\MyProgram
A>после обновления программы т.к. вистализацию отключил теперь не могу прочитать эту ветку.
A>вот пробую напрямую прочитать через RegOpenKeyEx с ключом KEY_WOW64_32KEY, но пишет что нет такой ветки
Насколько я понмю, WOW64 редирект работает только для ключей, находящихся непосредственно под HKCU\Software\ и HKCU\Software\Classes\
Т.е. 32битные процессы вместо Software\Classes\CLSID пишут в Software\Classes\Wow6432Node\CLSID
Для ключа подобного вашему редирект не должен работать, хотя и стоит в середине пути Wow6432Node.
Все должно прекрасно читаться через Microsoft.Win32.Registry. Просто открывайте обновленный путь вместо старого.
Для справки:
Registry Keys Affected by WOW64