powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить наличие .NET Framework и при отсутствии скачать его
4 сообщений из 4, страница 1 из 1
Проверить наличие .NET Framework и при отсутствии скачать его
    #38719053
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем проекте на VB6 используется COM DLL написанная на C# версия 2.0. Если на машине пользователя не установлен .NET Framework 2.0 то и работать ничего не будет. Как проверить наличие нужной версии .NET из VB? И если отсуствует, как скачать ее?
...
Рейтинг: 0 / 0
Проверить наличие .NET Framework и при отсутствии скачать его
    #38719151
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

.Net 2 нету только на голом XP/2003
На Виста/2008 и Win7/2008R2 он предустановлен
На Win8/8.1/2012/2012R2 его нету но он нафиг не нужен, какая-то более старшая предустановленная версия его компенсирует
Разберешься?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
Public Function IsNet2SP1Installed() As Boolean
  Dim lngResult As Long
  Dim lngKeyHandle As Long
  Dim Installed As Long
  Dim SP As Long
  IsNet2SP1Installed = False
  
  If IsWin8 Then
    IsNet2SP1Installed = True 'отключаем проверку Net, итак все работает, хотя .Net v.2 и нету
    Exit Function
  End If
  
  ' Open the Root Branch to search
  lngResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _
   "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727", _
   0&, _
   KEY_READ, _
   lngKeyHandle)
  
  If lngResult <> ERROR_SUCCESS Then
  Else
    Installed = GetDword(HKEY_LOCAL_MACHINE, _
     "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727", _
     "Install")
    SP = GetDword(HKEY_LOCAL_MACHINE, _
     "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727", _
     "SP")
    If (Installed = 1) And (SP >= 1) Then
      IsNet2SP1Installed = True
    End If
  End If
End Function

Public Function GetDword(hKey As Long, ByVal lpszSubKey As String, _
 ByVal strValue As String, Optional ByVal dwDefault As Long = 0) As Long
  Dim dwData As Long
  Dim phkResult As Long
  Dim rtn As Long
  GetDword = dwDefault
  rtn = RegOpenKeyEx(hKey, lpszSubKey, 0&, KEY_READ, phkResult)
  If rtn <> 0& Then Exit Function
  rtn = RegQueryValueExBin(phkResult, strValue, 0&, REG_DWORD, dwData, 4&)
  If rtn <> 0& Then Exit Function
  rtn = RegCloseKey(phkResult)
  GetDword = dwData
End Function

Public Declare Function RegOpenKeyEx Lib "advapi32" Alias _
 "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey _
 As String, ByVal ulOptions As Long, _
 ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegQueryValueExBin Lib "advapi32.dll" Alias _
 "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
 ByVal lpReserved As Long, lpType As Long, lpData As Any, _
 lpcbData As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32" _
 (ByVal hKey As Long) As Long
Public Declare Function RegOpenKeyEx Lib "advapi32" Alias _
 "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey _
 As String, ByVal ulOptions As Long, _
 ByVal samDesired As Long, phkResult As Long) As Long



>При отсутствии скачать:
"Целиковые" дистрибутивные exe пакеты 2.0SP1 были. Они разные для XP/2003 32бит и 64бит
Либо "нецеликовый" Net 3.5 (докачивает) - Net 2 туда включен

Для Виста и старше все эти пакеты бессмысленны. Во-первых предустановлен,
во вторых это галка 3.5 "в компонентах виндоус".
...
Рейтинг: 0 / 0
Проверить наличие .NET Framework и при отсутствии скачать его
    #38719169
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прямых официальных ссылок на exe нет.

Либо вот это выкладываешь куда-либо ибо объем большой ~25/50MB (к себе на сайт если есть), и юзер сам качает.

Microsoft .NET Framework 2.0 Service Pack 1 (x86)

Microsoft .NET Framework 2.0 Service Pack 1 (x64)

Либо вот это включаешь в distr (3.5MB).
Но он сам будет качать причем много больше чем в первом варианте, м.б. 100МБ, м.б. больше.

Microsoft .NET Framework 3.5
...
Рейтинг: 0 / 0
Проверить наличие .NET Framework и при отсутствии скачать его
    #38719296
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

спасибо! буду разбираться с кодом)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверить наличие .NET Framework и при отсутствии скачать его
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]