|
Вопрос по лекции 7, где рассматривается взаимодействие со сторонними программами, в том числе эмуляция нажатия кнопок клавиатуры WshShell.SendKeys. Вопрос в том что во время автоматизации может потребоваться не нажатие клавиатуры, а нажатие кнопок в сообщениях этих программ. Можно вытащить информацию о объекте (кнопке) скажем с помощью AutoIt Info, или ориентироваться скажем на текст на кнопке..., но как на эту кнопку нажать? (без обхода по клавиатуре) |
Типичные администраторские сценарии WMI
Вывод списка команд, выполняемых при загрузке системы
Все команды, которые выполняются автоматически при старте системы, хранятся в WMI в виде экземпляров класса Win32_StartupCommand. Сценарий StartupCommand.vbs, представленный в листинге 13.5, выводит эти команды на экран.
'*******************************************************************
' Имя: StartupCommand.vbs
' Язык: VBScript
' Описание: Вывод списка команд, выполняемых при загрузке компьютера
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim strClass ' Имя класса
Dim objClass ' Объект SWbemObject (класс WMI)
Dim colStartupCommands' Коллекция экземпляров класса WMI
Dim objStartupCommand ' Элемент коллекции
Dim strResult ' Строка для вывода на экран
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strClass = "Win32_StartupCommand"
strResult = "Комманды выполняемые при загрузке компьютера :" & VbCrLf
' Получаем указатель на класс WMI
Set objClass = GetObject("WinMgmts:\\" & strComputer & _
"\" & strNamespace & ":" & strClass)
' Создаем коллекцию экземпляров класса Win32_StartupCommand
Set colStartupCommands = objClass.Instances_
' Перебираем элементы коллекции
For Each objStartupCommand in colStartupCommands
strResult = strResult & objStartupCommand.Command & VbCrLf
Next
' Выводим результат на экран
Wscript.Echo strResult
'************************* Конец ***********************************
Листинг
13.5.
Определение команд, выполняемых при загрузке компьютера
Вывод свойств операционной системы
Основные свойства установленной операционной системы (загрузочное устройство, номер сборки, дата установки и т. д.) можно получить с помощью объекта Win32_OperatingSystem (листинг 13.6).
'*******************************************************************
' Имя: OSProperty.vbs
' Язык: VBScript
' Описание: Вывод свойств операционной системы
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim strClass ' Имя класса
Dim objClass ' Объект SWbemObject (класс WMI)
Dim colOperatingSystems' Коллекция экземпляров класса WMI
Dim objOperatingSystem ' Элемент коллекции
Dim strResult ' Строка для вывода на экран
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strClass = "Win32_OperatingSystem"
strResult = " Свойства операционной системы: " & VbCrLf & VbCrLf
' Получаем указатель на класс WMI
Set objClass = GetObject("WinMgmts:\\" & strComputer & _
"\" & strNamespace & ":" & strClass)
' Создаем коллекцию экземпляров класса Win32_OperatingSystem
Set colOperatingSystems = objClass.Instances_
' Перебираем элементы коллекции
For Each objOperatingSystem in colOperatingSystems
' Формирум строку для вывода на экран
strResult = strResult & "Boot Device: " & _
objOperatingSystem.BootDevice & VbCrLf
strResult = strResult & "Build Number: " & _
objOperatingSystem.BuildNumber & VbCrLf
strResult = strResult & "Build Type: " & _
objOperatingSystem.BuildType & VbCrLf
strResult = strResult & "Caption: " & _
objOperatingSystem.Caption & VbCrLf
strResult = strResult & "Code Set: " & _
objOperatingSystem.CodeSet & VbCrLf
strResult = strResult & "Country Code: " & _
objOperatingSystem.CountryCode & VbCrLf
strResult = strResult & "Install Date: " & _
objOperatingSystem.InstallDate & VbCrLf
strResult = strResult & "Licensed Users: " & _
objOperatingSystem.NumberOfLicensedUsers & VbCrLf
strResult = strResult & "Organization: " & _
objOperatingSystem.Organization & VbCrLf
strResult = strResult & "OS Language: " & _
objOperatingSystem.OSLanguage & VbCrLf
strResult = strResult & "OS Product Suite: " & _
objOperatingSystem.OSProductSuite & VbCrLf
strResult = strResult & "OS Type: " & _
objOperatingSystem.OSType & VbCrLf
strResult = strResult & "Primary: " & _
objOperatingSystem.Primary & VbCrLf
strResult = strResult & "Registered User: " & _
objOperatingSystem.RegisteredUser & VbCrLf
strResult = strResult & "Serial Number: " & _
objOperatingSystem.SerialNumber & VbCrLf
strResult = strResult & "Version: " & _
objOperatingSystem.Version & VbCrLf
Next
' Выводим результат на экран
Wscript.Echo strResult
'************************* Конец ***********************************
Листинг
13.6.
Вывод свойств операционной системы
Определение номера последнего обновления, установленного на компьютере
Сценарий ServPack.vbs, приведенный в листинге 13.7, выводит на экран номер последнего обновления (ServicePack), которое было установлено на компьютере (свойства ServicePackMajorVersion и ServicePackMinorVersion объекта Win32_OperatingSystem ).
'*******************************************************************
' Имя: ServPack.vbs
' Язык: VBScript
' Описание: Вывод номера ServicePack для операционной системы
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim strClass ' Имя класса
Dim objClass ' Объект SWbemObject (класс WMI)
Dim colOperatingSystems ' Коллекция экземпляров класса WMI
Dim objOperatingSystem ' Элемент коллекции
Dim strResult ' Строка для вывода на экран
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strClass = "Win32_OperatingSystem"
strResult = "ServicePack установленный на этом компьютере " & VbCrLf
' Получаем указатель на класс WMI
Set objClass = GetObject("WinMgmts:\\" & strComputer & _
"\" & strNamespace & ":" & strClass)
' Создаем коллекцию экземпляров класса Win32_OperatingSystem
Set colOperatingSystems = objClass.Instances_
' Перебираем элементы коллекции
For Each objOperatingSystem in colOperatingSystems
' Формируем строку для вывода на экран
strResult = strResult & "№ " & _
objOperatingSystem.ServicePackMajorVersion & "." &_
objOperatingSystem.ServicePackMinorVersion & VbCrLf
Next
' Выводим результирущую строку на экран
Wscript.Echo strResult
'************************* Конец ***********************************
Листинг
13.7.
Определение номера последнего обновления
Сбор сведений о подключенных устройствах
С помощью сценариев WMI можно быстро собрать информацию о параметрах и характеристиках различных устройств компьютера (процессор, память, клавиатура, мышь, параллельные и последовательные порты, звуковая и видеокарта, сетевой адаптер и т. д.). В листингах 13.8, 13.9 приведены примеры таких сценариев.
Получение информации о физической памяти
Получить информацию о банках физической памяти компьютера позволяют экземпляры класса Win32_PhysicalMemory. Сценарий MemoryInfo.vbs (листинг 13.8) выводит на экран наиболее важные свойства этих экземпляров.
'*******************************************************************
' Имя: MemoryInfo.vbs
' Язык: VBScript
' Описание: Вывод информации о физической памяти
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim strClass ' Имя класса
Dim objClass ' Объект SWbemObject (класс WMI)
Dim colPhysMemory ' Коллекция экземпляров класса WMI
Dim objPhysMemory ' Элемент коллекции
Dim strResult ' Результирующая строка
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strClass = "Win32_PhysicalMemory"
strResult = "Информация о физической памяти:" & vbCrLf & vbCrLf
' Получаем указатель на класс WMI
Set objClass = GetObject("WinMgmts:\\" & strComputer & _
"\" & strNamespace & ":" & strClass)
' Создаем коллекцию экземпляров класса Win32_PhysicalMemory
Set colPhysMemory = objClass.Instances_
' Перебираем коллекцию
For Each objPhysMemory In colPhysMemory
strResult = strResult & "Bank Label: " & _
objPhysMemory.BankLabel & VbCrLf
strResult = strResult & "Capacity: " & _
objPhysMemory.Capacity & VbCrLf
strResult = strResult & "Data Width: " & _
objPhysMemory.DataWidth & VbCrLf
strResult = strResult & "Description: " & _
objPhysMemory.Description & VbCrLf
strResult = strResult & "Device Locator: " & _
objPhysMemory.DeviceLocator & VbCrLf
strResult = strResult & "Form Factor: " & _
objPhysMemory.FormFactor & VbCrLf
strResult = strResult & "Hot Swappable: " & _
objPhysMemory.HotSwappable & VbCrLf
strResult = strResult & "Manufacturer: " & _
objPhysMemory.Manufacturer & VbCrLf
strResult = strResult & "Memory Type: " & _
objPhysMemory.MemoryType & VbCrLf
strResult = strResult & "Name: " & _
objPhysMemory.Name & VbCrLf
strResult = strResult & "Part Number: " & _
objPhysMemory.PartNumber & VbCrLf
strResult = strResult & "Speed: " & _
objPhysMemory.Speed & VbCrLf
strResult = strResult & "Tag: " & _
objPhysMemory.Tag & VbCrLf
strResult = strResult & "Type Detail: " & _
objPhysMemory.TypeDetail & VbCrLf
Next
' Выводим результат на экран
Wscript.Echo strResult
'************************* Конец ***********************************
Листинг
13.8.
Вывод информации о физической памяти
Получение информации о сетевом адаптере
В сценарии NetworkAdapterInfo.vbs (листинг 13.9) свойства сетевых адаптеров извлекаются с помощью класса Win32_NetworkAdapter. Отметим, что с помощью сценариев WMI можно также изменять конфигурацию сетевых карт — для этого следует использовать класс Win32_NetworkAdapterConfiguration, который предоставляет множество методов для настройки сетевых служб DNS, DHCP, WINS.
'*******************************************************************
' Имя: NetworkAdapterInfo.vbs
' Язык: VBScript
' Описание: Вывод информации о сетевых адаптерах
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim objService ' Объект SWbemServices
Dim colNetworkAdapters ' Коллекция экземпляров класса WMI
Dim objNetworkAdapter ' Элемент коллекции
Dim strResult ' Результирующая строка
Dim WshShell ' Объект WshShell
Dim theNotepad ' Объект WshScriptExec
' Объявляем константы
Const wbemFlagForwardOnly = 32
Const wbemFlagReturnImmediately = 16
Const ForWriting = 2
' Процедура для записи информации в файл
Sub TextOut (Text, File)
' Объявляем переменные
Dim objFSO, FOut
' Создаем объект FileSystemObject
Set objFSO=WScript.CreateObject("Scripting.FileSystemObject")
' Открываем выходной файл для записи
Set FOut = objFSO.OpenTextFile (File,ForWriting,true)
' Записываем текстовую строку в файл
FOut.WriteLine Text
' Закрываем выходной файл
FOut.Close
End Sub
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strResult = "Зарегистрированные сетевые адаптеры " & VbCrLf & VbCrLf
' Подключаемся к пространству имен WMI
Set objService = GetObject("WinMgmts:\\" & _
strComputer & "\" & strNamespace)
Set colNetworkAdapters = objService.ExecQuery(_
"SELECT * FROM Win32_NetworkAdapter",,_
wbemFlagReturnImmediately+wbemFlagForwardOnly)
' Перебираем элементы коллекции
For Each objNetworkAdapter In colNetworkAdapters
strResult = strResult & "Adapter Type: " & _
objNetworkAdapter.AdapterType & VbCrLf &_
"Description: " & objNetworkAdapter.Description & vbCrLf &_
"Installed: " & objNetworkAdapter.Installed & vbCrLf &_
"Manufacturer: " & objNetworkAdapter.Manufacturer & vbCrLf &_
"Product Name: " & objNetworkAdapter.ProductName & vbCrLf &_
"Net Connection ID: " & objNetworkAdapter.NetConnectionID & vbCrLf &_
"Net Connection Status: " & _
objNetworkAdapter.NetConnectionStatus & vbCrLf & _
"MAC Address: " & objNetworkAdapter.MACAddress & vbCrLf &_
"PNP Device ID" & objNetworkAdapter.PNPDeviceID
Next
' Выводим результат в текстовый файл
TextOut strResult, "C:\NetworkAdapters.txt"
'Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'Открываем созданный файл в Блокноте
Set theNotepad = WshShell.Exec("notepad " & "C:\NetworkAdapters.txt" )
'************************* Конец ***********************************
Листинг
13.9.
Вывод информации о сетевых адаптерах
Управление службами и процессами
В листингах 13.10–13.14 приведены сценарии, с помощью которых можно управлять процессами и службами Windows. Подобные сценарии особенно удобно применять для выполнения групповых операций, например, при необходимости запустить все приостановленные службы или завершить все процессы с определенным именем.
Получение информации о свойствах и состоянии служб
Сценарий ServicesInfo.vbs, приведенный в листинге 13.10, выводит информацию о зарегистрированных службах (экземпляры класса Win32_Service ) в текстовый файл C:\Services.txt, который затем открывается с помощью Блокнота.
'*******************************************************************
' Имя: ServicesInfo.vbs
' Язык: VBScript
' Описание: Вывод информации о службах
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim objWMIService ' Объект SWbemServices
Dim colServices ' Коллекция экземпляров класса WMI
Dim objService ' Элемент коллекции
Dim strResult ' Результирующая строка
Dim WshShell ' Объект WshShell
Dim theNotepad ' Объект WshScriptExec
' Объявляем константы
Const wbemFlagForwardOnly = 32
Const wbemFlagReturnImmediately = 16
Const ForWriting = 2
' Функция для записи информации в файл
Sub TextOut (Text, File)
' Объявляем переменные
Dim objFSO, FOut
' Создаем объект FileSystemObject
Set objFSO=WScript.CreateObject("Scripting.FileSystemObject")
' Открываем выходной файл для записи
Set FOut = objFSO.OpenTextFile (File,ForWriting,true)
' Записываем текстовую строку в файл
FOut.WriteLine Text
' Закрываем выходной файл
FOut.Close
End Sub
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strResult = "Информация о службах " & VbCrLf & VbCrLf
' Подключаемся к пространству имен WMI
Set objWMIService = GetObject("WinMgmts:\\" & _
strComputer & "\" & strNamespace)
Set colServices = objWMIService.ExecQuery("SELECT * FROM Win32_Service"_
,, wbemFlagReturnImmediately+wbemFlagForwardOnly)
For Each objService In colServices
strResult = strResult & "Name: " & _
objService.Name & VbCrLf
strResult = strResult & "Display Name: " & _
objService.DisplayName & VbCrLf
strResult = strResult & "Caption: " & _
objService.Caption & VbCrLf
strResult = strResult & "Description: " & _
objService.Description & VbCrLf
strResult = strResult & "Path Name: " & _
objService.PathName & VbCrLf
strResult = strResult & "ServiceType: " & _
objService.ServiceType & VbCrLf
strResult = strResult & "Status: " & _
objService.Status & VbCrLf
strResult = strResult & "State: " & _
objService.State & VbCrLf
strResult = strResult & "Started: " & _
objService.Started & VbCrLf
strResult = strResult & "Start Mode: " & _
objService.StartMode & VbCrLf
strResult = strResult & "Start Name: " & _
objService.StartName & VbCrLf
strResult = strResult & "Accept pause: " & _
objService.AcceptPause & VbCrLf
strResult = strResult & "Accept stop: " & _
objService.AcceptStop & VbCrLf
strResult = strResult & "********************************" & VbCrLf &_
VbCrLf
Next
' Выводим результат в текстовый файл
TextOut strResult, "C:\Services.txt"
'Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'Открываем созданный файл в Блокноте
Set theNotepad = WshShell.Exec("notepad " & "C:\Services.txt" )
'************************* Конец ***********************************
Листинг
13.10.
Вывод информации о всех службах Windows
Запуск и восстановление работы служб
В сценарии StartStoppedServices.vbs, описанном в листинге 13.11, производится запуск всех остановленных служб (с состоянием Stopped), которые должны стартовать автоматически при запуске системы.
'*******************************************************************
' Имя: StartStoppedServices.vbs
' Язык: VBScript
' Описание: Запуск остановленных служб
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim objWMIService ' Объект SWbemServices
Dim colServices ' Коллекция экземпляров класса WMI
Dim objService ' Элемент коллекции
Dim strResult ' Результирующая строка
Dim WshShell ' Объект WshShell
Dim Res
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
' Подключаемся к пространству имен WMI
Set objWMIService = GetObject("WinMgmts:\\" & _
strComputer & "\" & strNamespace)
' Формируем коллекцию остановленных служб
Set colServices = objWMIService.ExecQuery _
("SELECT * FROM Win32_Service WHERE State = 'Stopped' and StartMode = " _
& "'Auto'")
' Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
' Запрос на запуск служб
Res = WshShell.Popup("Запустить все остановленные службы?",0, _
"Работа со службами Windows",vbQuestion+vbYesNo)
If Res=vbYes Then
' Запускаем каждую остановленную службу
For Each objService In colServices
objService.StartService()
Next
WScript.Echo "Все остановленные службы запущены"
End If
'************************* Конец ***********************************
Листинг
13.11.
Запуск всех остановленных служб
Сценарий ResumePausedServices.vbs, приведенный в листинге 13.12, восстанавливает работу всех приостановленных служб (с состоянием Paused), которые должны стартовать автоматически при запуске системы.
'*******************************************************************
' Имя: ResumePausedServices.vbs
' Язык: VBScript
' Описание: Продолжение работы приостановленных служб
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim objWMIService ' Объект SWbemServices
Dim colServices ' Коллекция экземпляров класса WMI
Dim objService ' Элемент коллекции
Dim strResult ' Результирующая строка
Dim WshShell ' Объект WshShell
Dim Res
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
' Подключаемся к пространству имен WMI
Set objWMIService = GetObject("WinMgmts:\\" & _
strComputer & "\" & strNamespace)
' Формируем коллекцию остановленных служб
Set colServices = objWMIService.ExecQuery _
("SELECT * FROM Win32_Service WHERE State = 'Paused' and StartMode = " _
& "'Auto'")
' Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
' Запрос на запуск служб
Res = WshShell.Popup("Возобновить работу всех приостановленных служб?"_
,0, "Работа со службами Windows",vbQuestion+vbYesNo)
If Res=vbYes Then
' Возобновляем каждую приостановленную службу
For Each objService In colServices
objService.ResumeService()
Next
WScript.Echo "Работа всех приостановленных служб возобновлена"
End If
'************************* Конец ***********************************
Листинг
13.12.
Продолжение работы всех приостановленных служб
Завершение процессов
В сценарии KillProcess.vbs, описанном в листинге 13.13, на примере Блокнота (Notepad.exe) показано, каким образом можно принудительно завершить работу запущенных процессов (для этого используется метод Terminate соответствующего объекта Win32_Process ).
'*******************************************************************
' Имя: KillProcess.vbs
' Язык: VBScript
' Описание: Завершение запущенного процесса
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim objService ' Объект SWbemServices
Dim colProcesses ' Коллекция экземпляров класса WMI
Dim objProcess ' Элемент коллекции
Dim WshShell ' Объект WshShell
Dim Res
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
' Подключаемся к пространству имен WMI
Set objService = GetObject("WinMgmts:\\" & _
strComputer & "\" & strNamespace)
'Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
' Формируем коллекцию процессов NOTEPAD.EXE
Set colProcesses = objService.ExecQuery(_
"SELECT * FROM Win32_Process WHERE Name='NOTEPAD.EXE'")
'Запрос на завершение работы всех Блокнотов
Res=WshShell.Popup("Завершить работу всех Блокнотов?",0,_
"Работа с процессами",vbQuestion+vbYesNo)
' Проверяем введенное значение
If Res=vbYes Then
'Перебираем коллекцию
For Each objProcess in colProcesses
' Завершаем приложение
objProcess.Terminate()
Next
End If
'************************* Конец ***********************************
Листинг
13.13.
Принудительное завершение запущенного процесса
Получение информации о процессах
Сценарий ProcessInfo.vbs, приведенный в листинге 13.14, для всех запущенных процессов (экземпляры класса Win32_Process ) выводит в текстовый файл C:\Process.txt значения некоторых наиболее важных с точки зрения администратора параметров. Сформированный файл затем открывается с помощью Блокнота.
'*******************************************************************
' Имя: ProcessInfo.vbs
' Язык: VBScript
' Описание: Вывод свойств запущенных процессов
'*******************************************************************
Option Explicit
' Объявляем переменные
Dim strComputer ' Имя компьютера
Dim strNamespace ' Имя пространства имен
Dim objService ' Объект SWbemServices
Dim colProcesses ' Коллекция экземпляров класса WMI
Dim objProcess ' Элемент коллекции
Dim strResult ' Результирующая строка
Dim WshShell ' Объект WshShell
Dim theNotepad ' Объект WshScriptExec
' Объявляем константы
Const wbemFlagForwardOnly = 32
Const wbemFlagReturnImmediately = 16
Const ForWriting = 2
' Функция для записи информации в файл
Sub TextOut (Text, File)
' Объявляем переменные
Dim objFSO, FOut
' Создаем объект FileSystemObject
Set objFSO=WScript.CreateObject("Scripting.FileSystemObject")
' Открываем выходной файл для записи
Set FOut = objFSO.OpenTextFile (File,ForWriting,true)
' Записываем текстовую строку в файл
FOut.WriteLine Text
' Закрываем выходной файл
FOut.Close
End Sub
'********************** Начало *************************************
' Присваиваем начальные значения переменным
strComputer = "."
strNamespace = "Root\CIMV2"
strResult = "Сведения о запущенных процессах " & VbCrLf & VbCrLf
' Подключаемся к пространству имен WMI
Set objService = GetObject("WinMgmts:\\" & _
strComputer & "\" & strNamespace)
Set colProcesses = objService.ExecQuery("SELECT * FROM Win32_Process",,_
wbemFlagReturnImmediately+wbemFlagForwardOnly)
For Each objProcess In colProcesses
strResult = strResult & "Name: " & objProcess.Name & VbCrLf &_
"Description: " & objProcess.Description & VbCrLf &_
"Handle: " & objProcess.Handle & VbCrLf &_
"Parent Process Id: " & objProcess.ParentProcessId & VbCrLf &_
"Command Line: " & objProcess.CommandLine & VbCrLf &_
"Creation Date: " & objProcess.CreationDate & VbCrLf &_
"Executable Path: " & objProcess.ExecutablePath & VbCrLf &_
"Priority: " & objProcess.Priority & VbCrLf &_
"Maximum WorkingSet Size: " & objProcess.MaximumWorkingSetSize & VbCrLf &_
"Minimum WorkingSet Size: " & objProcess.MinimumWorkingSetSize & VbCrLf &_
"Page File Usage: " & objProcess.PageFileUsage & VbCrLf &_
"Peak Virtual Size: " & objProcess.PeakVirtualSize & VbCrLf &_
"Peak WorkingSet Size: " & objProcess.PeakWorkingSetSize & VbCrLf &_
"********************************" & VbCrLf & VbCrLf
Next
' Выводим результат в текстовый файл
TextOut strResult, "C:\Process.txt"
'Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'Открываем созданный файл в Блокноте
Set theNotepad = WshShell.Exec("notepad " & "C:\Process.txt" )
'************************* Конец ***********************************
Листинг
13.14.
Вывод свойств всех запущенных процессов