piątek, 16 maja 2014

Pobieranie informacji dot. systemu operacyjnego i parametrów komputera- 1/2

WMI (Windows Management Instrumentation) to zagadnienie, na które trafiłem całkiem przypadkiem na stronie www.stackoverflow.com. Po głębszej analizie możliwości implementacji WMI w kodzie VBA uznałem, że warto podzielić się tą wiedzą z czytelnikami.

Czym jest WMI? Zacytuję za Wikipedią: "WMI (ang. Windows Management Instrumentation) – zestaw protokołów i rozszerzeń systemu Windows umożliwiających zarządzanie i dostęp do zasobów komputera, takich jak adaptery sieciowe, aktualnie otwarte programy, lista procesów, odczyty z wbudowanych czujników temperatury, odczytów woltomierzy itp."

Co w praktyce możemy zrobić dzięki WMI? Oto kilka przykładowych możliwości:
  • uzyskać informacje o systemie operacyjnym
  • uzyskać listę procesów uruchomionych w systemie, w tym zamykać procesy
  • uzyskać parametry wykorzystania dysków
  • uzyskać informacje dot. procesora komputera
  • uzyskać parametry pamięci RAM
  • a nawet zamknąć system operacyjny.
Użycie WMI w kodzie VBA wymagać będzie utworzenia referencji do obiektu:
lub

Kolejnym krokiem będzie stworzenie właściwego zapytania SQL skierowanego do odpowiedniej tabeli systemowej. Oto przykłady:

  • parametry systemu operacyjnego: "Select * from Win32_OperatingSystem"
  • parametry procesora: "Select * from Win32_Processor"
  • parametry uruchomionych procesów: "Select * from Win32_Process"
    (powyższy mechanizm pozwala wylistować ID procesu, na bazie którego możemy np. zamknąć określony proces z poziomu kodu VBA)
  • Listę plików określonego folderu: "Select * From Cim_DataFile " & _
                   "Where Drive = 'C:' And Path = '\\Instalki\\'")
     
Dodatkowe przykłady zastosowań bez problemu można znaleźć w sieci choć w szczególności polecam ten link ze strony Microsoft MSDN.  Szerszy opis WMI znajduje się również na stronie Microsoft MSDN.

W kolejnym poście zaprezentuję dwa gotowe przykłady wykorzystania WMI listujące informacje o parametrach procesora oraz zamykające procesy spełniające określone kryteria.

Brak komentarzy:

Prześlij komentarz