Объект JSSys3.Ops — Элемент управления ActiveX

Объект JSSys3.Ops — Элемент управления ActiveX Объектная модель Windows Script Host

Всем привет, с вами снова автор блога scriptcoding.ru. Сегодня мы рассмотрим такой элемент управления ActiveX как JSSys3.Ops. данная библиотека содержит довольно много функциональных возможностей: работа с файловой системой, создание оконного интерфейса, работа с файлами и многое другое.

Для доступа к объекту нужно сначала получить на него ссылку и сохранить ее в заданной переменной, например:

Язык VBScript:

Set sys = CreateObject("JSSys3.Ops")

Язык JScript:

sys = WScript.CreateObject("JSSys3.Ops");

Я буду одновременно давать описание функциональных возможностей данного элемента управления ActiveX и приводить примеры на языке vbscript сервера сценариев Windows Script Host. Ссылку на компонент я дам ниже, вам останется его только зарегистрировать в системе и все – можно приступать к его использованию. Параллельно можете ознакомится с такими элементами управления ActiveX как JSForm.Window и Chilkat.Spider.

Работа с системной информации – элемент управления ActiveX

GetOpVersion(vOSVersion) – Информация об операционной системе. Функция возвращает 0 – если удача или 1 – если провал. При удаче переменная vOSVersion будет хранить в себе массив из 4 элементов:

  • a(0) = Номер платформы: 1-9x 2-NT
  • a(1) = Номер версии основной
  • a(2) = Номер версии второстепенный
  • a(3) = Номер сборки
  • a(4) = Информация о версии: В 9x это будет любая дополнительная информация. В NT это будет номер пакета обновления.
r = sys.GetOpVersion(a)
for i=0 to 3
mess=mess & a(i) & VbCrLf
Next
WScript.echo mess

GetMemory(vTotal, vInUse) – Информация об общем и используемом  размере оперативной памяти. В случае успеха вернет 0, а неудачи — 1. Параметр vTotal вернет установленную память RAM в MB, а параметр vInUse — покажет используемую RAM в MB

r = sys.GetMemory(total,used)
 mess="Общий объем ОЗУ: " & total & " MB" & VbCrLf & "Используемый объем ОЗУ: " & used & " MB"
WScript.echo mess
GetCurUser() – текущее имя пользователя.
mess = sys1.GetCurUser
WScript.echo mess
GetCompName() – имя компьютера.
mess = sys1. GetCompName
WScript.echo mess

ChangeCompName(vNewName) — Изменение имени компьютера. vNewName – новое имя. Если vNewName превышает 15 символов, то будут использоваться только 15 левых символов. Функция элемента управления ActiveX возвращает 0 при удаче или 1 при провале.

r = sys1.ChangeCompName("COMPNEW")

ChangeDriveName(vDriveLetter, vNewName) – задает метку тома. Тут vDriveLetter метка, а vNewName – имя тома. Вернет 0 при удаче или 1 при провале.

GetColorDepthBPP() – Глубина дисплея в бит на пиксель: 0 при ошибке.

mess = sys1.GetColorDepthBPP

GetDesktopPixels(vDeskWidth, vDeskHeight) — Ширина и высота рабочего стола (за исключением панели задач). Покажет 0 при удаче или 1 при провале. Тут vDeskWidth и vDeskHeight – ширина и высота.

mess = sys2.GetDesktopPixels(w, h)
mess="Высота - " & w & VbCrLf & "Ширина - "& h
WScript.echo mess

GetScreenPixels(vScreenWidth, vScreenHeight) – Ширина и высота рабочего стола: 0 при удаче или 1 при провале. Тут vScreenWidth и vScreenHeight – ширина и высота.

GetSystemColor(vItem) — Значение цвета графического интерфейса для различных предметов. В случае успеха функция вернет 6-символьный шестнадцатеричный код цвета. Если аргумент vItem не действует, то функция покажет «0». ActiveX элемент управления

r = sys2.GetSystemColor("Desktop")

Успех может быть проверен с помощью условия :

If Len (r) = 6 Then MsgBox "успех"

АргументvItem может принимать следующие значения:

  • «TitleBar» – Активный_заголовок_окна
  • «TitleBar2» – Активный_заголовок_окна — правильный градиент цвета
  • «TitleBarText» – Активный_заголовок_окна – текст
  • «InactiveTitleBar» – Неактивный_заголовок_окна
  • «InactiveTitleBar2» – Неактивный_заголовок_окна — правильный градиент цвета
  • «InactiveTitleBarText» – Неактивный_заголовок_окна – текст
  • «Buttons» — Цвет для тела окон и кнопок
  • «Scrollbars» – Цвет_прокрутки
  • «Desktop» – Фон рабочего стола
  • «ButtonText» — Текст подписи к кнопкам
  • «Selection» – Цвет_подсветки (по умолчанию темно-синий)
  • «SelText» — Цвет самого текста в выделенном тексте
  • «Menu» — Окна фона меню (как правило, такой же, как цвет кнопки)
  • «MenuText» — Текст меню
  • «WindowBackground» — фон внутри (по умолчанию белый)
  • «WindowBackText» — текст внутри (по умолчанию черный)
JSSys3.Ops - ActiveX элемент управления

SetSystemColor(vItem, vHexCode) — Установить значение цвета графического интерфейса для различных предметов. vHexCode — любой действующий 6-значный шестнадцатеричный номер: 0 при успехе, 1 — недействительный vItem, 2 — недействительный vHexCode, 3 –установлен, 4 – не удалось установить значение, 5 – неизвестная ошибка.

r = sys2.SetSystemColor("Desktop", "0000FF")                                                                                  ' работа с элементом управления ActiveX

GetDriveInfo() — Информация о фиксированных дисках. В случае успеха будут оказаны строки, разделенные запятыми всех основных буквы, как путь к диску [пробел] общий размер [пробел] свободное пространство (Пример: «C:\ 2000 329, D:\ 4500 +1382»). В случае ошибки возвращается «».

GetDefaultProgram(vExt) — Путь по умолчанию к программе для типа документа (vExt).

v = sys2.GetDefaultProgram("bmp")

SetWallpaper(vFilePath, vStyle) – установить обои рабочего стола, тут vFilePath путь к .BMP файлу, vStyle принимает значения «center», «tile» или «stretch». 0 при успехе, 1 – ошибка аргумента vFilePath, 2 – ошибка аргумента vStyle, 3 – неудача.

r = sys3.SetWallpaper("C:\pic1.bmp", "stretch")

SetBackColor(vHexCode) – установить цвет фона рабочего стола. vHexCode может быть любым допустимым 6-символьный шестнадцатеричный код. 0 при успехе, 1 – ошибка vHexCode, 2 – неудача. Элемент управления ActiveX.

r = sys3.SetBackColor("0000FF")

TimerStart() – запуск таймера.

TimerStop() – остановка таймера, возвращает результат времени работы

r = sys3.TimerStop

PrintFile(vFilePath1) — Распечатать документ с программой по умолчанию.

r = sys3.PrintFile("C:\windows\desktop\file.txt")

GetProcessList(vProcList, vNumberProcs) – Список процессов. Параметр vProcList — разделенные запятыми строки пути к документу (C:\Windows\explorer.exe, C:\Windows\System\Shell32.dll…), параметр vNumberProcs — номер запущенных процессов.

r = sys3.GetProcessList(s, num)

Диалоговые окна – элемент управления ActiveX JSSys3.Ops

GetOpenWindowTitles(vTitles As Variant) — Список открытых, видимых «верхнего уровня» окон по названию текста заголовка. Эта функция может быть использована для получения названия необходимых заголовков для процедуры CloseProgram. Параметр vTitles — массив заголовков окон. Если метод не работает, или, если нет открытых окон, vTitles возвращает «».

r = sys4.GetOpenWindowTitles(a)

GetActiveWindowTitle() — Текст заголовка активного окна. Эта функция может быть использована для получения названия необходимых заголовков для процедуры CloseProgram.

r = sys4.GetActiveWindowTitle()

SetWindowActive(vTitle1, vBoolMin) – сделать активным приложение. vTitle1 — текст активного заголовка. Значение может быть получено с помощью функции GetOpenWindowTitles. vBoolMin – логическое значение, True – минимизировать все.

r = sys4.SetWindowActive("Untitled - Notepad", True)

CloseProgram(vTitle1, vForce) – закрыть запущенную программу. vTitle1 – заголовок, vForce принимает значения 1 (запрос на закрытие или сохранение данных) или 2 (закрытие программы без сохранения — критическое).

Sys4.CloseProgram "Untitled - Notepad", 2                                                                                                                           ' ActiveX элементом управления

OpenDlg(vTitle1, vExt, vInitDir) – диалоговое окно для открытия файла. vTitle1 – заголовок, vExt — расширение по умолчанию. Может быть «», vInitDir – путь к начальной папке. Может быть «».

r = sys5.OpenDlg("Open File", "txt", "C:\")

OpenMultiDlg(vTitle2, vExt, vInitDir) — диалоговое окно для открытия документа с несколькими вариантами. vTitle2 – заголовок_окна, vExt — расширение по умолчанию. Может быть «», vInitDir – путь к начальной папке. Может быть «».

r = sys5.OpenMultiDlg("Select Files", "txt", "C:\")

SaveDlg(vTitle2, vExt) – диалоговое_окно для сохранения. vTitle2 – заголовок_окна, vExt — расширение по умолчанию. Может быть «».

r = sys5.SaveDlg("Save File", "log")

ColorDlg() – диалоговое_окно выбора цвета. Возвращает выбранный цвет, как 6-символьный шестнадцатеричный код.

r = sys5.ColorDlg

BrowseForFolder(vTitle3) – диалоговое_окно для выбора папки. vTitle3 – заголовок_окна.

r = sys6.BrowseForFolder("Please select folder.")

Получение свойств файла — Объект PEFile

Объект PEFile доступен через объект Ops, он похож на объект FileSystemObject. PEFile предоставляет информацию для свойств документа для PE (Portable Executable), в том числе EXE, DLL, OCX и DRV. Для подключения объекта используем метод GetPEFile:

Set Ob = sys6.GetPEFile(FilePath)                                                                                                                                                                                        ' использование элемента управления ActiveX

ТутFilePath – путь к файлу. Если возникнет ошибка, то метод возвратит: 1 – путь к недоступен, 2 — не является документом PE, 3 – не удалось получить информацию, 4 – неизвестная ошибка. В случае успеха метод возвращает объект PEFile.

Свойства объекта PEFile:

  • CompanyName (например: «Ace Audio Co.»)
  • FileVersion (например: 1.02.44.0113)
  • DateCreated (например: «4/23/99 10:22:00 PM») [возвращает «», если дата не доступна]
  • DateLastModified (например: «4/23/99 10:22:00 PM»)
  • ProductVersion — версии программного продукта
  • ProductName — (например: «Ace Music Player»)
  • FileDescription — (например: «Ace Music Player Audio Library»)
  • Size – размер в KB.
  • Attributes – атрибуты, позволит получить любую комбинацию из типичных признаков: 0-нормальный/архивный, 1-только чтение, 2-скрытый, 4-системный.
  • Name (например: «AMPAUD.DLL»)

Работа с .INI файлами

JSSys3.Ops - работа с ActiveX элементом управления

GetIniSectionVals(vFilePath1, vSection) — Список .INI раздела пар ключ-значение. vFilePath1 – путь к .INI, vSection – название секции. Вернет все значения в секции ключ = значение, в нуль-разделители строк. Возврат может быть присвоен массивом a = Split(v, Chr(0)). Возвращает «», если метод не работает.

v = sys6.GetIniSectionVals("C:\Windows\Program1.ini", "Settings")

GetIniSectionkeys(vFilePath1, vSection) — Список ключ = имя.

v = sys6.GetIniSectionKeys("C:\Windows\Program1.ini", "Settings")

GetIniSectionNames(vFilePath1) – получить название всех секций.

v = sys6.GetIniSectionNames("C:\Windows\Program1.ini")                                                                                                                         ' элемент управления ActiveX

GetIniVal(vFilePath2, vSection, vKeyName) — Одно значение из .INI.

v = sys7.GetIniVal("C:\Windows\Program1.ini", "Settings", "Backcolor")

WriteIniSection(vFilePath2, vSection, vKeyList) — Записать раздел с ключами. vFilePath2 – полный путь к _INI_файлу_, vSection – название новой секции для записи, vKeyList должна быть строка ключ-значение разделителем пар Chr (0) с Chr (0) в конце. Например:

s = "key1=value1" & chr(0) & "key2=value2" & chr(0) & "key3=value3" & chr(0)
r = sys7.WriteIniSection("C:\Windows\Program1.ini", "Settings", s)

WriteIniVal(vFilePath2, vSection, vKeyName, vValue) — Запись одного значения или удаление одного ключа или раздела.

Для записи значения:

r = sys7.WriteIniVal("C:\Windows\Program1.ini", "Settings", "BackColor", "0000FF")

Для удаления ключа используется «null» для параметра vValue:

r = sys7.WriteIniVal("C:\Windows\Program1.ini", "Settings", "BackColor", "null")   'удаление "Backcolor" ключа                                                                                               ' работа с элементом управления ActiveX

Для удаления раздела используется «null» для параметров vKeyName и vValue:

r = sys7.WriteIniVal("C:\Windows\Program1.ini", "Settings", "null", "null")         'удаление "Settings" секции

True при успехе или False в случае ошибки.

Работа с ADS файлами — работа с элементом управления ActiveX JSSys3.Ops

IsNTFS() – определяет, является ли файловая система типа  NTFS. Значения True или False.

ListStreams(vFilePath2, AFiles, ASizes) — Список ADS файлов, прикрепленных к данному файлу или папке. Тут vFilePath2 – полный путь к документу или папке, AFiles –массив имен,  ASizes — массив размера в байтах.

LNum = Ob.ListStreams("C:\", AFils, ASz).                                                    ' элемент ActiveX управления

ReadStream(vFilePath3, vLen) — Читает часть или все ADS файл как текстовую строку. vFilePath3 — Полный путь к ADS. Пути к ADS имеют формат [путь_к_файлу]: [ADS имя]. vLen — Количество байт для чтения. Используйте 0 для чтения всего содержимого.

s = Ob.ReadStream("C:\file1.txt:stream1.txt", 0)

DeleteStream(vFilePath3) — Удаляет ADS файл.

s = Ob.DeleteStream("C:\file1.txt:stream1.txt")

Скачать компонент

И так, в этой статье мы рассмотрели такой элемент управлении ActiveX как JSSys3.Ops, подключив который можно выполнять различные задачи в программных сценариях Windows Script Host и не только.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий