
1432
.pdfВариант 2. Определить системные дату и время, а также информацию о переменных окружения.
Вариант 3. Определить системные дату и время, а также информацию об установленном программном обеспечении.
Вариант 4. Определить версию операционной системы, а также информацию об установленном программном обеспечении.
Вариант 5. Определить версию операционной системы, а также информацию о переменных окружения.
Вариант 6. Определить версию операционной системы, а также информацию о процессах.
Вариант 7. Определить аппаратную платформу, дату записи и статус BIOS.
Вариант 8. Определить аппаратную платформу, процессор и производителя.
Вариант 9. Определить аппаратную платформу, а также версию операционной системы.
Вариант 10. Определить учетные записи локальной машины.
Порядок выполнения лабораторной работы
Создать новый проект – приложение Windows Forms.
Вынести на форму необходимые визуальные компоненты.
Добавить программный код обработки событий.
Компилировать программу.
Тестировать программу.
Создать документ с описанием работы программы.
10.3. Анализ оборудования
Получение информации о компьютере
Информацию о компьютере дает запрос Win32_ComputerSystem из инструментария управления Windows
‘ Пример 10.10
Dim Query As WqlObjectQuery = New WqlObjectQuery( _ "SELECT * FROM Win32_ComputerSystem")
Dim Find As ManagementObjectSearcher = New _ ManagementObjectSearcher(Query)
129
For Each Mo As ManagementObject In Find.Get() ListBox1.Items.Add("Computer belongs to domain " + _ Mo("Domain").ToString()) ListBox1.Items.Add("Computer manufacturer." + _ Mo("Manufacturer").ToString()) ListBox1.Items.Add("Model name given by manufacturer "+ _ Mo("Model").ToString())
Next
Информация о производителе
Информация о производителе выбирается с помощью запроса
Win32_ComputerSystemProduct из инструментария управления
Windows, затем отображается в поле Label.
‘ Пример 10.11
Dim Query As WqlObjectQuery = New WqlObjectQuery( _ "SELECT * FROM Win32_ComputerSystemProduct")
Dim Find As ManagementObjectSearcher = New _
ManagementObjectSearcher(Query)
For Each Mo As ManagementObject In Find.Get()
ListBox1.Items.Add("Description." + _
Mo("Description").ToString())
ListBox1.Items.Add( _
"Identifying number (usually serial number)." + _
Mo("IdentifyingNumber").ToString())
ListBox1.Items.Add("Commonly used product name." + _ Mo("Name").ToString())
ListBox1.Items.Add("Universally Unique Identifier of product." + Mo("UUID").ToString())
ListBox1.Items.Add("Vendor of product." + _
Mo("Vendor").ToString())
Next
130
Тип компьютера
Информация о типе компьютера выбирается с помощью запроса Win32_ComputerSystem из инструментария управления Windows, затем отображается в поле Label.
‘ Пример 10.12
Dim Roles() As String = {"Standalone Workstation", _ "Member Workstation", _
"Standalone Server", _
"Member Server", _
"Backup Domain Controller", _
"Primary Domain Controller"}
Dim Query As WqlObjectQuery = New WqlObjectQuery( _ "SELECT * FROM Win32_ComputerSystem")
Dim Find As ManagementObjectSearcher = New _
ManagementObjectSearcher(Query)
For Each Mo As ManagementObject In Find.Get()
ListBox1.Items.Add(Roles( _
Convert.ToInt32(Mo("DomainRole"))).ToString())
Next
Определение числа процессоров
Количество процессоров вашего компьютера можно определить с помощью свойства ProcessorAffinity метода GetCurrentProcess.
Инструкция And, стоящая в одном из выражений в цикле While, выполняет поразрядную (побитовую) операцию И.
‘ Пример 10.13
Dim Am As Integer = _ System.Diagnostics.Process.GetCurrentProcess(). _ ProcessorAffinity.ToInt32()
Dim ProcCnt As Integer = 0 While Am <> 0
ProcCnt = ProcCnt + 1
Am = Am And (Am - 1) End While
ListBox1.Items.Add(ProcCnt.ToString())
131
Информация о жестком диске
Информация о типе компьютера выбирается с помощью запроса Win32_LogicalDisk из инструментария управления Windows, затем отображается в поле Label. Для того чтобы использовать данный инструментарий, необходимо сделать ссылку на пространство имен
System.Management.
‘ Пример 10.14
Dim cmiPath As String = _ "\root\cimv2:Win32_LogicalDisk.DeviceID='C:'"
Dim Mo As ManagementObject = New ManagementObject(cmiPath) ListBox1.Items.Add("Описание: " + _ Mo("Description").ToString())
ListBox1.Items.Add("File system: " + _ Mo("Файловая система").ToString()) ListBox1.Items.Add("Свободное пространство: " + _ Mo("FreeSpace").ToString()) ListBox1.Items.Add("Общий размер: " + _ Mo("Size").ToString())
Свойства видеоконтроллера
Следующая команда отображает в поле Label сведения о границах экрана, то есть минимальных и максимальных значениях экранных координат.
‘ Пример 10.15
ListBox1.Items.Add( _ System.Windows.Forms.Screen.PrimaryScreen.Bounds.ToString())
Сведения о видеоконтроллере, а также о частоте обновления экрана можно получить с помощью WMI – инструментария управления Windows. Для того чтобы использовать данный инструментарий, необходимо сделать ссылку на пространство имен System.Manadgement. Свойства видеоконтроллера определяются применением запроса Win32_VideoController.
‘ Пример 10.16
Dim Sc As ManagementScope = New ManagementScope( _ "\\.\root\cimv2", Nothing)
132
Dim Ph As ManagementPath = New ManagementPath( _
"Win32_VideoController")
Dim Mc As ManagementClass = New ManagementClass( _ Sc, Ph, Nothing)
Из полученной таким образом структуры сведения о имени видеоконтроллера, процессоре, памяти и частоте обновления экрана выбираются оператором GetPropertyValue с указанием соответствующего параметра.
‘ Пример 10.17
For Each ss As ManagementObject In Mc.GetInstances() ListBox1.Items.Add("Имя " + ss.GetPropertyValue("Name"))
ListBox1.Items.Add("Видеопроцессор " + _
ss.GetPropertyValue("VideoProcessor"))
ListBox1.Items.Add("Память " + _
ss.GetPropertyValue("AdapterRAM").ToString())
ListBox1.Items.Add("Разрешение " + _
ss.GetPropertyValue("VideoModeDescription").ToString())
ListBox1.Items.Add("Обновление " + _
ss.GetPropertyValue("CurrentRefreshRate").ToString())
Next
10.4. Задания на тему «Анализ оборудования»
Разработать приложение Windows Forms, которое определяет параметры оборудования, указанные в соответствующем варианте задания.
Вариант 1. Определить информацию о компьютере.
Вариант 2. Определить информацию о производителе, а также тип компьютера.
Вариант 3. Определить тип компьютера и количество процессоров.
Вариант 4. Определить информацию о видеоконтроллере. Вариант 5. Определить информацию о жестком диске.
133
Вариант 6. Определить информацию о компьютере.
Вариант 7. Определить информацию о производителе, а также тип компьютера.
Вариант 8. Определить информацию о видеоконтроллере. Вариант 9. Определить информацию о жестком диске.
Вариант 10. Определить тип компьютера и количество процессоров.
Порядок выполнения лабораторной работы
Создать новый проект – приложение Windows Forms.
Вынести на форму необходимые визуальные компоненты.
Добавить программный код обработки событий.
Компилировать программу.
Тестировать программу.
Создать документ с описанием работы программы.
10.5. Анализ сетевой информации
Разбор URL
Выделить из строки URL-адреса ее составляющие (адрес, порт, протокол и т.д.) можно, применив класс System.UriBuilder. Строка для разбора вводится в поле TextBox. Результат разбора выводится в поле ListBox.
‘ Пример 10.18
Dim s As String
If TextBox1.Text.Length > 0 Then s = TextBox1.Text
Else
s = "http://microsoft.com:80/default.aspx?id=55" End If
Dim Parser As UriBuilder = New UriBuilder(s)
ListBox1.Items.Add("URL " + Parser.Uri.ToString())
ListBox1.Items.Add("Адрес " + Parser.Host.ToString())
ListBox1.Items.Add("протокол " + Parser.Scheme.ToString())
ListBox1.Items.Add("путь " + Parser.Path.ToString())
134
ListBox1.Items.Add("порт " + Parser.Port.ToString())
ListBox1.Items.Add("запрос " + Parser.Query.ToString())
Dim builder As UriBuilder = New UriBuilder( _ "https", "microsoft.com", 81, "/default.aspx", "?id=77")
ListBox1.Items.Add("построение URL " + builder.ToString())
DNS-имя компьютера
DNS-имя компьютера определяется с помощью метода
GetHostByName класса Net.Dns.
Netbios-имя компьютера
Имя компьютера можно извлечь из системной переменной
System.Environment.MachineName.
Имя текущего пользователя
Информация об имени домена и о текущем пользователе системы находится в переменных UserDomainName и UserName класса Environment. Аналогично определяется имя компьютера в переменной MachinName. Имя хоста определяетя с помощью метода
System.Net.Dns.GetHostName. DNS-имя определяется с помощью метода System.Net.Dns.GetHostEntry. В примере кода ниже все эти сведения выводятся в поле ListBox.
‘ Пример 10.19
'Имя компьютера
ListBox1.Items.Add("Machine Name = " + _ System.Environment.MachineName.ToString())
'Имя хоста
Dim H As String = System.Net.Dns.GetHostName().ToString()
ListBox1.Items.Add("Host Name = " + H)
' DNS-имя
ListBox1.Items.Add("DNS-имя = " + _
System.Net.Dns.GetHostEntry(H).HostName)
135
'Имя домена
ListBox1.Items.Add("Domain = " + _ Environment.UserDomainName.ToString())
'Текущий пользователь
ListBox1.Items.Add("User = " + _ Environment.UserName.ToString())
Список IP-адресов компьютера
Для получения списка адресов используется коллекция AddressList. Адреса выводятся в поле ListBox.
‘ Пример 10.20
' Имя хоста
Dim H As String = System.Net.Dns.GetHostName()
' Список IP-адресов
Dim IP_list() As System.Net.IPAddress = _
System.Net.Dns.GetHostEntry(H).AddressList
For Each IP As System.Net.IPAddress In IP_list
ListBox1.Items.Add(IP.ToString())
Next
Список сетевых дисков
Список дисков определяется с помощью функции WshNetwork из библиотеки IWshRuntimeLibrary. Для доступа к библиотеке необходимо подключить COM-объект Windows Script Host Object Model, щелкнув правой кнопкой мыши по пункту Ссылки в окне Обозревателя решений. Небольшая программа приводится ниже полностью.
‘ Пример 10.21
Imports IWshRuntimeLibrary Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click
136
Dim Net As WshNetwork = New WshNetwork()
For Each Drv As IEnumerable In Net.EnumNetworkDrives()
ListBox1.Items.Add(Drv.ToString())
Next
End Sub
End Class
10.6. Задания на тему «Анализ сетевой информации»
Разработать приложение Windows Forms, которое определяет ту сетевую информацию, которая требуется в соответствующем варианте задания.
Вариант 1. Выполнить разбор URL-адреса.
Вариант 2. Определить DNS-имя компьютера. Вариант 3. Определить имя текущего пользователя. Вариант 4. Определить IP-адреса компьютера. Вариант 5. Определить сетевые диски.
Вариант 6. Выполнить IP-адреса компьютера, а также имя текущего пользователя.
Вариант 7. Определить NetBios-имя компьютера.
Вариант 8. Определить DNS-имя компьютера, а также NetBiosимя компьютера.
Вариант 9. Определить имя хоста.
Вариант 10. Определить имя хоста, DNS-имя компьютера, а также NetBios-имя компьютера.
Порядок выполнения лабораторной работы
Создать новый проект – приложение Windows Forms.
Вынести на форму необходимые визуальные компоненты.
Добавить программный код обработки событий.
Компилировать программу.
Тестировать программу.
Создать документ с описанием работы программы.
137

11.РАЗНЫЕ ПРОГРАММЫ
Впоследнюю главу включены несколько разнородных тем, по которым не предусмотрено заданий и лабораторных работ.
11.1. Параметры приложения
Параметры приложения для Windows Forms позволяют создавать настраиваемые приложения и параметры пользователей на клиентском компьютере. С помощью параметров приложения можно хранить такие сведения, как строки подключений к базам данных, предпочтения пользователя и др. Пользователь ожидает, что, повторно запуская приложение, он вернется к последнему состоянию данной системы. Например, увидит установленные им размеры окна, положение на рабочем столе, найдет оставленные им последние документы. Используя Visual Studio, можно создавать параметры, связывать со свойствами в формах, читать и записывать на диск. Параметры хранятся в формате XML в файлах конфигурации. Параметры приложения размещаются в файле app.exe.config, где app
– имя основного исполняемого файла. Параметры пользователей помещаются в файле user.config, где user – имя пользователя, выполняющего приложение. В большинстве случаев параметры приложения доступны только для чтения. Параметры пользователей, напротив, можно и считывать, и записывать во время выполнения. Можно определить параметры в окне Свойства формы с помощью свойства ApplicationSettings (рис. 11.1).
Рис. 11.1. Окно Свойства формы
Visual Studio обеспечивает привязку значения параметра к свойству в форме или элементе управления таким образом, чтобы
138