Дізнатися інформацію про систему Windows може бути корисним для багатьох завдань, будь то розробка додатків, Підтримка програмного забезпечення або просто встановлення драйверів. Якщо ви використовуєте Visual Basic for Applications (VBA), ви можете легко отримати доступ до системних даних Windows і використовувати їх у своїх сценаріях та макросах.
За допомогою VBA ви можете отримати інформацію про версію операційної системи Windows, дату встановлення, назву користувача, каталог системи та багато іншого. Ви також можете дізнатися, чи зараз запущені будь-які процеси, і отримати список встановлених програм.
Однак, перед тим як приступити до отримання системної інформації, важливо врахувати, що VBA може працювати тільки в додатках Microsoft Office. Необхідно також мати на увазі, що доступ до системних даних може бути обмеженим, і деякі операції можуть вимагати адміністративних привілеїв.
Для отримання системної інформації в VBA можна використовувати об'єкти WScript (Windows Script Host) або WMI (Windows Management Instrumentation). Об'єкти WScript надають набір методів і властивостей, які дозволяють отримати доступ до основної інформації про систему Windows, такий як Версія операційної системи, ім'я комп'ютера і т. д. ОБ'ЄКТИ WMI, з іншого боку, надають більш розширені можливості для отримання інформації про процесор, пам'ять, жорсткий диск та інші системні компоненти.
Як визначити версію Windows за допомогою VBA
Визначення версії операційної системи Windows може бути корисним у різних сценаріях Програмування на мові VBA. У цьому розділі ми розглянемо, як отримати інформацію про версію Windows за допомогою коду VBA.
Для початку, слід створити новий модуль в редакторі vba. Вставте наступний код у створений модуль:
'Отримати інформацію про версію Windows
Dim osVersion As String
'Вивести інформацію про версію Windows
MsgBox "версія Windows:" & osVersion
Після вставки коду, збережіть модуль і закрийте редактор VBA.
Щоб визначити версію Windows, потрібно виконати нову процедуру, яку ми тільки що створили. Для цього можна використовувати два способи:
1. Скористайтеся поєднанням гарячих клавіш:
Відкрийте модуль програми VBA, натисніть на клавіатурі поєднання клавіш " Alt " і " F11 " одночасно. У меню "Вставка" виберіть "Модуль". Скопіюйте попередній код у новий модуль. Закрийте редактор VBA. Потім натисніть "Alt" і "F8" одночасно, виберіть "GetWindowsVersion"у списку процедур і натисніть "Виконати". Вам буде показано вікно повідомлення із зазначенням версії Windows.
2. Використовуйте кнопку на стрічці інструментів:
На стрічці інструментів в Excel клікніть правою кнопкою миші і виберіть "налаштувати панель швидкого доступу". У діалоговому вікні виберіть " Макроси "у випадаючому списку"виберіть команди з:". Виділіть процедуру " GetWindowsVersion "і натисніть кнопку "Додати>>". Закрийте діалогове вікно. Тепер, виконання процедури можна запустити, клікнувши на кнопку, яку ви тільки що додали на стрічку інструментів. Відкриється вікно повідомлення із зазначенням версії Windows.
Тепер ви знаєте, як визначити версію Windows за допомогою VBA. Ви можете використовувати цю інформацію для налаштування своїх VBA-додатків залежно від версії операційної системи.
Використання функції GetVersionEx
У VBA можна використовувати функцію GetVersionEx для отримання інформації про версію операційної системи Windows. Це корисно, наприклад, для виконання певних дій залежно від версії Windows, з якою працює користувач.
Функція GetVersionEx повертає структуру OSVERSIONINFO, яка містить інформацію про версію операційної системи, номер версії, номер збірки та інші відомості.
Приклад використання функції GetVersionEx:
Public Declare PtrSafe Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion до тих пір, поки
Dwminorверсія до тих пір, поки
dwBuildNumber якомога довше
dwPlatformId до тих пір, поки
Szcsdверсія у вигляді рядка * 128
Виділіть osInfo як OSVERSIONINFO
Затемнюйте повторне значення до тих пір, поки
Якщо RetValue < > 0, то
MsgBox "версія Windows:" & osInfo.dwMajorVersion & "." & osInfo.dwMinorVersion&", рядок " & osInfo.dwBuildNumber
MsgBox "не вдалося отримати інформацію про версію Windows".
В даному прикладі функція GetVersionEx викликається шляхом оголошення її зовнішньої функцією за допомогою оператора Declare. Потім створюється змінна osInfo типу OSVERSIONINFO, яка використовується для зберігання інформації про версію Windows. Потім викликається функція GetVersionEx з опцією osInfo, і результат зберігається у змінній retValue.
Якщо виклик функції пройшов успішно, то виводиться повідомлення про версію Windows за допомогою MsgBox. Якщо виклик функції не вдався, то виводиться повідомлення про помилку.
Використання функції GetVersionEx дозволяє отримати інформацію про версію Windows і використовувати її для різних дій в програмі на VBA. Наприклад, можна виконати певні дії тільки на певних версіях операційної системи або перевірити, чи підходить програма для роботи на певній версії Windows.
Визначення версії Windows через системні змінні
Для визначення версії Windows можна використовувати змінну strOSVersion, яка містить інформацію про версію операційної системи. Наприклад, якщо потрібно дізнатися версію Windows 10, можна застосувати наступний код:
Dim strOSVersion As StringstrOSVersion = Environ("OSVERSION")If InStr(1, strOSVersion, "10") ThenMsgBox "Версия Windows: 10"End If
Дана конструкція перевіряє, чи містить змінна strOSVersion рядок "10". Якщо так, то виводиться повідомлення з версією Windows.
Крім того, можна визначити відразу кілька змінних, наприклад, "MajorVersion" (основна версія), "MinorVersion" (мінорна версія) і "BuildNumber" (номер збірки). Для цього використовуйте наступний код:
Dim strMajorVersion As StringDim strMinorVersion As StringDim strBuildNumber As StringstrMajorVersion = Environ("OSMAJORVERSION")strMinorVersion = Environ("OSMINORVERSION")strBuildNumber = Environ("OSBUILDNUMBER")MsgBox "Основная версия: " & strMajorVersion & vbCrLf & _"Минорная версия: " & strMinorVersion & vbCrLf & _"Номер сборки: " & strBuildNumber
Таким чином, ви отримаєте інформацію про версію та збірку Windows. Наприклад,"основна версія: 10, мінорна версія: 0, Номер збірки: 19041".
Використання системних змінних дозволяє швидко і легко визначити версію Windows, що може бути корисно при розробці макросів або скриптів на VBA.