| Главная | Журнал | Форум | Wiki | DRKB | Страны мира |
Как в VB.NET определить какой сервис пак установлен в системеТак как библиотека OSVersion, предназначенная для получения сведений о системе не содержит информации об установленном сервис паке, то для получения его версии необходимо напрямую вызвать API функцию GetVersionEx. Однако, .NET Framework предоставляет более простой в использовании доступ к базовому набору API функций через Interop уровень. Ниже приведён пример, содержащий метод GetServicePack, возвращающий версию сервис пака, установленного в операционной системе. ПРИМЕЧАНИЕ: структура OSVERSIONINFO содержит строку szCSDVersion фиксированной длины. Так как строки фиксированной длины больше не поддерживаются, то необходимо предоставить отсортированную информацию для этого мембера. Делается это при помощи символов <>. 1. Создайте новое приложение Visual Basic .NET. Module module1
Private Structure OSVERSIONINFO
Dim dwOSVersionInfoSize As Integer
Dim dwMajorVersion As Integer
Dim dwMinorVersion As Integer
Dim dwBuildNumber As Integer
Dim dwPlatformId As Integer
<VBFixedString(128), _
System.Runtime.InteropServices.MarshalAs _
(System.Runtime.InteropServices.UnmanagedType.ByValTStr, _
SizeConst:=128)> Dim szCSDVersion As String
End Structure
Private Declare Function GetVersionExA Lib "kernel32" (ByRef lpVersionInformation As OSVERSIONINFO) As Short
Public Function getServicePack() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Short
osinfo.dwOSVersionInfoSize = 148
retvalue = GetVersionExA(osinfo)
If Len(osinfo.szCSDVersion) = 0 Then
Return ("No Service Pack Installed")
Else
Return (CStr(osinfo.szCSDVersion))
End If
End Function
Public Sub main()
Console.WriteLine(getServicePack())
End Sub
End Module
Для компиляции и запуска приложения нажмите CTRL+F5. Информация о сервис паке появится в консольном окне. |
Основные разделы сайта
|
|
|