Всем привет, с вами снова автор блога 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» — текст внутри (по умолчанию черный)
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 файлами
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 и не только.