Получить информацию о видеокарте - VB
Формулировка задачи:
Вечер добрый, понадобилось узнать информацию о видеокарте с программы.
Подскажите как плиз. Заранее благодарен !
Решение задачи: «Получить информацию о видеокарте»
textual
Листинг программы
'Используется WMI 'Option Explicit Dim fso, wmio, nwo, strInform As String Private Sub Command1_Click() strInform = "" Set fso = CreateObject("Scripting.FileSystemObject") Set nwo = CreateObject("WScript.Network") If Len(LCase(nwo.ComputerName)) > 0 Then InformationAboutVideo (LCase(nwo.ComputerName)) MsgBox strInform, vbInformation, "Видеоадаптер" 'Print strInform' переменная содержит информацию о видеоадаптере End Sub Sub InformationAboutVideo(CompName) Set wmio = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\" & CompName & "\Root\CIMV2") Log "Win32_VideoController", _ "Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion", "NOT (Name LIKE '%Secondary')", _ " ", _ "Наименование,Объем памяти (Мб),Видеопроцессор,Режим работы,Дата драйвера,Версия драйвера" End Sub 'составить WQL-запрос, выполнить и записать в переменную 'входные параметры: 'from - класс WMI 'sel - свойства WMI, через запятую 'where - условие отбора или пустая строка 'sect - соответствующая секция отчета 'param - соответствующие параметры внутри секции отчета, через запятую 'для отображения в кратных единицах, нужно их указать в скобках Sub Log(from, sel, where, sect, param) Dim i As Integer, query, clss, item, prop Const RETURN_IMMEDIATELY = 16, FORWARD_ONLY = 32 query = "Select " & sel & " From " & from If Len(where) > 0 Then query = query & " Where " & where Set clss = wmio.ExecQuery(query, , RETURN_IMMEDIATELY + FORWARD_ONLY) Dim props, names, value props = Split(sel, ",") names = Split(param, ",") For Each item In clss For i = 0 To UBound(props) Set prop = item.Properties_(props(i)) value = prop.value 'без проверки на Null возможнен вылет с ошибкой If IsNull(value) Then value = "" ElseIf IsArray(value) Then value = Join(value, ",") ElseIf Right(names(i), 4) = "(Мб)" Then value = CStr(Round(value / 1024 ^ 2)) ElseIf Right(names(i), 4) = "(Гб)" Then value = CStr(Round(value / 1024 ^ 3)) ElseIf prop.CIMType = 101 Then value = ReadableDate(value) End If value = Trim(Replace(value, ";", "_")) If Len(value) > 0 Then strInform = strInform & vbCrLf & names(i) & " - " & value End If Next Next End Sub Function ReadableDate(str) ReadableDate = Mid(str, 7, 2) & "." & Mid(str, 5, 2) & "." & Left(str, 4) End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д