Dinesh Kumar Dora Ответов: 2

Нужна помощь с этим VB.NET код только с фреймворком dotnet 2.0


Здравствуйте друзья,

Мне нужно VB.net решения (в dotnet 2.0) для следующих функций:
а) определение архитектуры ОС - x86 или x64
б) чтение раздела реестра из 64-битного ключа reg и узлов Wow6432, а также базовой архитектуры системы don.

Ну, я получаю кодовое решение для вышеперечисленных функций, но все они были в C# и выше dotnet 3.5 или более новых фреймворках.

Мое ограничение-dotnet 2.0. Пожалуйста, если у кого-то есть какие-либо доступные решения, пожалуйста, помогите с некоторым фрагментом кода.

Что я уже пробовал:

Для архитектуры sys я попробовал это, но получил ошибку с

Public Function Is64BitOS() As Boolean
    Using p As Process = Process.GetCurrentProcess()
        Dim retVal As Boolean
        Return (IntPtr.Size = 8 OrElse (IsWow64Process IsNot Nothing AndAlso IntPtr.Size = 4 AndAlso IsWow64Process(p.Handle, retVal) AndAlso retVal))
    End Using
End Function


А для чтения раздела реестра, основанного на архитектуре sys, я планирую соответствующим образом жестко закодировать путь к узлу wow6432. лично мне такой подход не нравится, но если у кого-то есть лучшее решение, дайте мне знать.

CHill60

Так в чем же была ошибка, которую вы получили?

2 Ответов

Рейтинг:
0

Richard Deeming

Чтение 64/32-битных разделов реестра в .NET 2.0 потребует некоторых вызовов P/Invoke:
Как читать 64-битный реестр из 32-битного приложения или наоборот | Rhyous[^]

Код в этом посте написан на языке C#, но его можно преобразовать в VB.NET; в противном случае вы всегда можете создать сборку C# с этим кодом и вызвать ее из своего приложения. VB.NET применение.

NB: Основная поддержка .Объем 2.0 с пакетом обновления 2 закончился в 2011 году. Расширенная поддержка закончилась в 2016 году. Вам действительно нужно посмотреть на обновление до более новой версии, если это вообще возможно. :)


Maciej Los

Хорошая ссылка!