Открытые члены | |
CreateForm ([in] LONG Left,[in] LONG Top,[in] LONG Width,[in] LONG Height,[in, defaultvalue(WS_DEFAULT)] LONG Style,[out, retval] IDispatch **pControl) | |
Метод создает новую форму в нужной позиции и с требуемыми размерами, изначально форма не видна, для ее отображения требуется вызвать метод Show или воспользоваться свойством Visible. | |
CreateDialogForm ([in] LONG Left,[in] LONG Top,[in] LONG Width,[in] LONG Height,[in, defaultvalue(WS_DIALOGDEFAULT)] LONG Style,[out, retval] IDispatch **pControl) | |
Метод создает дочернюю диалоговую форму, его параметры идентичны параметрам метода CreateForm объекта WindowSystemObject, за исключением значения по умолчанию параметра Style, выбранного таким образом чтобы создаваемая форма не могла менять свой размер или быть минимизирована. | |
CreateImageList ([out, retval] IDispatch **pControl) | |
Метод создает новый объект ImageList. | |
CreateTimer ([out, retval] IDispatch **pControl) | |
Метод создает новый таймер. | |
CreateCOMEvents ([in] IDispatch *COMObject,[out, retval] IDispatch **pControl) | |
Создание объекта COMEvents. | |
CreateFindDialog ([in, defaultvalue("")] BSTR FindText,[in, defaultvalue(FR_DOWN)] ULONG Flags,[out, retval] IDispatch **pResult) | |
Метод создает диалог поиска текста, параметры аналогичны параметрам метода CreateFindDialog формы. | |
CreateReplaceDialog ([in, defaultvalue("")] BSTR FindText,[in, defaultvalue("")] BSTR ReplaceText,[in, defaultvalue(FR_DOWN)] ULONG Flags,[out, retval] IDispatch **pResult) | |
Метод создает диалог поиска\замены текста, параметры аналогичны параметрам метода CreateReplaceDialog формы. | |
CreateTrayIcon ([out, retval] IDispatch **pControl) | |
Метод создает новый объектTrayIcon. | |
Run (void) | |
Запуск встроенного цикла обработки сообщений, он будет продолжаться до тех пор, пока видна какая либо форма или до вызова метода Stop. | |
Stop (void) | |
Остановка встроенного цикла обработки сообщений, который ранее был запущен методом Run. | |
Translate ([in] BSTR Text,[out, retval] VARIANT *pResult) | |
Метод переводит строку текста Text в значение Data. | |
LoadImage ([in] BSTR Path,[out, retval] IDispatch **pResult) | |
Метод загружает изображение из файла или из сети Internet и создает объект Picture (стандартный объект Windows с интерфейсом IPicture). | |
About (void) | |
Метод выводит на экран окно с информацией о текущей версии WSO. | |
CreateEventHandler ([out, retval] IDispatch **pControl) | |
Метод позволяет создать объект EventHandler . | |
CreatePrintInfo ([out, retval] IDispatch **pControl) | |
Создает объект PrintInfo . | |
CreateStdDispatch ([in] BSTR TypeLibrary,[in] LONG Major,[in] LONG Minor,[in] BSTR Guid,[in] IUnknown *Object,[out, retval] IDispatch **pControl) | |
Создает объект StdDispatch . | |
VirtualKeyCodeToString ([in] ULONG VirtualKey,[in, defaultvalue(TRUE)] VARIANT_BOOL UseKeyboardState,[out, retval] BSTR *pVal) | |
Преобразует виртуальный код клавиши клавиатуры в символ. | |
SaveLayout ([out, retval] BSTR *Layout) | |
Сохраняет положение компонентов в строку. | |
LoadLayout ([in] BSTR Layout) | |
Сохраняет положение компонентов из строки. | |
LoadIcon ([in] BSTR FileName,[out, retval] IDispatch **Result) | |
Метод загружает иконку из файла. | |
LoadSysIcon ([in] LONG ID,[out, retval] IDispatch **Result) | |
Метод загружает системную иконку. | |
GetIconCount ([in] BSTR FileName,[out, retval] ULONG *Result) | |
Метод сообщает, сколько иконок в файле. | |
Свойства | |
IDispatch *R | Controls [] |
Свойство - коллекция созданных форм. | |
IDispatch *R | Version [] |
Свойство - объект Version который позволяет получить информацию о текущей версии WSO. | |
VARIANT_BOOL RW | Debug [] |
Свойство, включающее режим отладки. | |
IDispatch *R | Regions [] |
Свойство - объект Regions который позволяет создавать регионы. | |
LONG RW | PixelsPerInch [] |
Свойство определяет масштабный коэффициент шрифта, по умолчанию это 96 точек на дюйм. | |
IDispatch *R | Screen [] |
Свойство - объект Screen который позволяет получить информацию о параметрах экрана. | |
VARIANT_BOOL RW | EnableVisualStyles [] |
Позволяет включить/выключить темы Windows XP. | |
IDispatch *R | Console [] |
Возвращает объект Console. | |
IDispatch *R | ActiveForm [] |
Возвращает форму, которая соответствует активному окну (может быть null, если нет активной формы). | |
IDispatch *R | ForegroundForm [] |
Возвращает форму, которая соответствует окну, с которым работает пользователь (может быть null). | |
VARIANT_BOOL RW | EnableVistaFileDialog [] |
Если "TRUE", то новый диалог открытия и сохранения файла будет использоваться в Windows Vista и последующих версиях, при использовании FileOpenSaveDialog, Form::OpenDialog, Form::SaveDialog. |
Кроме WindowSystemObject независимо можно создать таймер и WindowSystemControl.
Объект WindowSystemObject кроме методов создания объектов содержит методы и свойства настройки системы, методы для реализации цикла обработки оконных сообщений и сервисные функции.
Для создания объекта можно использовать его ProgID: “Scripting.WindowSystemObject”.
Пример (JScript):
o = new ActiveXObject("Scripting.WindowSystemObject") o.EnableVisualStyles = true f = o.CreateForm(0,0,0,0) f.Text = "WSO" f.ClientWidth = 200 f.ClientHeight = 100 f.CenterControl() Button = f.CreateButton(120,70,75,25,"Close") Button.OnClick = CloseForm f.Show() o.Run() function CloseForm(Sender) { f.Close() }
Результат:
About | ( | void | ) |
Метод выводит на экран окно с информацией о текущей версии WSO.
CreateCOMEvents | ( | [in] IDispatch * | COMObject, | |
[out, retval] IDispatch ** | pControl | |||
) |
CreateDialogForm | ( | [in] LONG | Left, | |
[in] LONG | Top, | |||
[in] LONG | Width, | |||
[in] LONG | Height, | |||
[in, defaultvalue(WS_DIALOGDEFAULT)] LONG | Style, | |||
[out, retval] IDispatch ** | pControl | |||
) |
Метод создает дочернюю диалоговую форму, его параметры идентичны параметрам метода CreateForm объекта WindowSystemObject, за исключением значения по умолчанию параметра Style, выбранного таким образом чтобы создаваемая форма не могла менять свой размер или быть минимизирована.
o = new ActiveXObject("Scripting.WindowSystemObject") o.EnableVisualStyles = true f = o.CreateDialogForm(0,0,0,0) f.Text = "WSO" f.ClientWidth = 200 f.ClientHeight = 100 f.CenterControl() f.Show() o.Run()
CreateEventHandler | ( | [out, retval] IDispatch ** | pControl | ) |
CreateFindDialog | ( | [in, defaultvalue("")] BSTR | FindText, | |
[in, defaultvalue(FR_DOWN)] ULONG | Flags, | |||
[out, retval] IDispatch ** | pResult | |||
) |
Метод создает диалог поиска текста, параметры аналогичны параметрам метода CreateFindDialog формы.
CreateForm | ( | [in] LONG | Left, | |
[in] LONG | Top, | |||
[in] LONG | Width, | |||
[in] LONG | Height, | |||
[in, defaultvalue(WS_DEFAULT)] LONG | Style, | |||
[out, retval] IDispatch ** | pControl | |||
) |
Метод создает новую форму в нужной позиции и с требуемыми размерами, изначально форма не видна, для ее отображения требуется вызвать метод Show или воспользоваться свойством Visible.
Left | отступ слева от границы экрана | |
Top | отступ сверху от границы экрана | |
Width | длина формы | |
Height | высота формы | |
Style | определяет стиль формы, стили формы могут быть комбинацией флагов: WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, WS_MAXIMIZEBOX, WS_SIZEBOX, WS_THICKFRAME, WS_SIZEGRIP, WS_SIZEBOX, WS_CONTROLBOX, WS_SYSMENU. Значение по умолчанию WS_DEFAULT. |
pControl | созданная форма |
Пример (JScript):
o = new ActiveXObject("Scripting.WindowSystemObject") o.EnableVisualStyles = true f = o.CreateForm(0,0,0,0) f.Text = "WSO" f.ClientWidth = 200 f.ClientHeight = 100 f.CenterControl() f.Show() o.Run()
CreateImageList | ( | [out, retval] IDispatch ** | pControl | ) |
CreatePrintInfo | ( | [out, retval] IDispatch ** | pControl | ) |
CreateReplaceDialog | ( | [in, defaultvalue("")] BSTR | FindText, | |
[in, defaultvalue("")] BSTR | ReplaceText, | |||
[in, defaultvalue(FR_DOWN)] ULONG | Flags, | |||
[out, retval] IDispatch ** | pResult | |||
) |
Метод создает диалог поиска\замены текста, параметры аналогичны параметрам метода CreateReplaceDialog формы.
CreateStdDispatch | ( | [in] BSTR | TypeLibrary, | |
[in] LONG | Major, | |||
[in] LONG | Minor, | |||
[in] BSTR | Guid, | |||
[in] IUnknown * | Object, | |||
[out, retval] IDispatch ** | pControl | |||
) |
Создает объект StdDispatch .
На вход методу передается объект с интерфейсом IUnknown. Метод загружает требуемую библиотеку типов (TLB) и с помощью стандартного метода CreateStdDispatch (см. документацию Windows API) создает объект, реализующий интерфейс IDispatch для переданного объекта IUnknown. Применяется если разработчики исходного объекта не предусмотрели для него реализации IDispatch корректно работающей в скриптовых языках.
TypeLibrary | Библиотека типов. Может быть как полный путь к файлу библиотеки или GUID библиотеки, например "{79c5f83e-fb53-4189-9ec4-4ac25440d825}". | |
Major | Старший номер версии библиотеки типов. | |
Minor | Младший номер версии библиотеки типов. | |
Guid | GUID для соответствующего интерфейса библиотеки. | |
Object | Объект с интерфейсом IUnknown. |
pControl | Объект StdDispatch . |
CreateTimer | ( | [out, retval] IDispatch ** | pControl | ) |
Метод создает новый таймер.
Таймер также может быть создан независимо от объекта WindowSystemObject.
CreateTrayIcon | ( | [out, retval] IDispatch ** | pControl | ) |
Метод создает новый объектTrayIcon.
Этот объект также может быть создан независимо от объекта WindowSystemObject.
GetIconCount | ( | [in] BSTR | FileName, | |
[out, retval] ULONG * | Result | |||
) |
Метод сообщает, сколько иконок в файле.
Для исполняемых файлов и DLL это число ресурсов типа RT_GROUP_ICON.
Для ICO файла результат = 1.
LoadIcon | ( | [in] BSTR | FileName, | |
[out, retval] IDispatch ** | Result | |||
) |
Метод загружает иконку из файла.
Файл может быть исполняемым файлом, DLL или ICO файлом.
В конце имени файла можно указать номер иконки в файле. Нумерация с нуля. Если номер иконки меньше нуля, то будет загружена иконка, идентификатор ресурса которой равен по модулю указанному номеру. Например, используйте -3 чтобы загрузить иконку с идентификатором ресурса 3.
Пример:
o = new ActiveXObject("Scripting.WindowSystemObject") o.EnableVisualStyles = true f = o.CreateForm(0,0,0,0) f.ClientWidth = 500 f.ClientHeight = 300 f.CenterControl() f.Icon = "Shell32.dll,-16" left = 10 for (i = 1; i<10; i++) { image = f.DrawImage(left,10,0,0,o.LoadIcon("Shell32.dll,-"+i)) left += image.Width left += 10 } f.Show() o.Run()
LoadImage | ( | [in] BSTR | Path, | |
[out, retval] IDispatch ** | pResult | |||
) |
Метод загружает изображение из файла или из сети Internet и создает объект Picture (стандартный объект Windows с интерфейсом IPicture).
Поддерживаются графические форматы: BMP (bitmap), JPEG, WMF /EMF(метафайл), ICO (иконка) или GIF.
Path | путь к файлу изображения |
pResult | созданный объект IPicture в случае успешной загрузки, NULL в случае ошибки загрузки изображения |
LoadLayout | ( | [in] BSTR | Layout | ) |
Сохраняет положение компонентов из строки.
Информация о конкретном компоненте будет загружена, только если у компонента заполнено свойство UniqueId.
Загружаются свойства:
LoadSysIcon | ( | [in] LONG | ID, | |
[out, retval] IDispatch ** | Result | |||
) |
Метод загружает системную иконку.
ID | ID системной иконки. |
Result | Объект иконки. |
o = new ActiveXObject("Scripting.WindowSystemObject") o.EnableVisualStyles = true f = o.CreateForm(0,0,0,0) f.ClientWidth = 500 f.ClientHeight = 400 f.CenterControl() Icons = [ "OIC_SAMPLE", "OIC_HAND", "OIC_QUES", "OIC_BANG", "OIC_NOTE", "OIC_WINLOGO", "OIC_WARNING", "OIC_ERROR", "OIC_INFORMATION", "OIC_SHIELD" ] left = 10 top = 10 for (i = 0; i<Icons.length; i++) { icon = o.LoadSysIcon(o.Translate(Icons[i])) f.TextOut(left,top,Icons[i]+":") image = f.DrawImage(left + 150,top,0,0,icon) image2 = f.DrawImage(left + 150 + 20 + image.Width,top,70,50,icon) image2.DrawType = o.Translate("DI_STRETCH") top += 10 top += Math.max(image.Height,70) } f.AutoScroll = true f.Show() o.Run()
Run | ( | void | ) |
Запуск встроенного цикла обработки сообщений, он будет продолжаться до тех пор, пока видна какая либо форма или до вызова метода Stop.
WSO предусматривает внутренние методы обработки сообщений операционной системы, хотя их можно не использовать, а реализовывать свой цикл обработки событий.
SaveLayout | ( | [out, retval] BSTR * | Layout | ) |
Сохраняет положение компонентов в строку.
Информация о конкретном компоненте будет сохранена, только если у компонента заполнено свойство UniqueId.
Значение свойства UniqueId необходимо указать также для всех компонентов, у которых DropTarget = "TRUE".
Сохраняются свойства:
Stop | ( | void | ) |
Остановка встроенного цикла обработки сообщений, который ранее был запущен методом Run.
Translate | ( | [in] BSTR | Text, | |
[out, retval] VARIANT * | pResult | |||
) |
Метод переводит строку текста Text в значение Data.
Метод создан для удобства написания программ на таких языках как JScript и VBScript, в которых отсутствуют возможности подключения дополнительных файлов, такие как директива #include в С или uses в Pascal.
Text | переводимая строка, может содержать константы, записанные в файле WSO.DAT, одну или несколько, разделенные знаком “|”, соответствующим операции “побитовое или”, например “MB_ICONHAND | MB_OKCANCEL”, другие операции на данный момент не поддерживаются. |
pResult | значение, вычисленное из строки |
VirtualKeyCodeToString | ( | [in] ULONG | VirtualKey, | |
[in, defaultvalue(TRUE)] VARIANT_BOOL | UseKeyboardState, | |||
[out, retval] BSTR * | pVal | |||
) |
Преобразует виртуальный код клавиши клавиатуры в символ.
См. ToUnicode в MSDN.
Метод учитывает текущий язык ввода.
VirtualKey | Виртуальный код клавиши клавиатуры. | |
UseKeyboardState | Использовать текущее состояние клавиатуры. Если "TRUE", то метод учитывает текущее состояние нажатия клавиш ALT, CTRL и т.д. |
pVal | Символьное значение. |
IDispatch* R ActiveForm |
Возвращает форму, которая соответствует активному окну (может быть null, если нет активной формы).
IDispatch* R Console |
IDispatch* R Controls |
Свойство - коллекция созданных форм.
VARIANT_BOOL RW Debug |
Свойство, включающее режим отладки.
По умолчанию "TRUE". В текущей версии режим отладки влияет только на функцию Translate.
VARIANT_BOOL RW EnableVistaFileDialog |
Если "TRUE", то новый диалог открытия и сохранения файла будет использоваться в Windows Vista и последующих версиях, при использовании FileOpenSaveDialog, Form::OpenDialog, Form::SaveDialog.
Default: "TRUE"
VARIANT_BOOL RW EnableVisualStyles |
Позволяет включить/выключить темы Windows XP.
В предыдущих версиях использование тем контролировалось наличием файла манифеста у приложения, которое использует WSO. В частности такой манифест включен в виде ресурса в примерах Delphi. При запуске скрипта на JScript (WSH) с помощью WScript.exe обычно темы XP недоступны, т. к. WScript.exe не содержит нужного манифеста. При работе под Windows XP это можно было исправить, положив рядом с WScript.exe файл манифеста WScript.exe.manifest. Однако в Windows Vista такой подход уже не работает, т. к. учитываются только манифесты, включенные в исполняемый файл. Для поддержки тем в WSO 1.1.6 в WSO.DLL добавлено свойство EnableVisualStyles, чтобы включить темы нужно изменить его после создания объекта WindowSystemObject на TRUE.
При использования данного свойства темы включаются в текущем потоке.
После включения тем, их нельзя выключить.
Данное свойство нужно использовать после создания объекта WindowSystemObject , перед созданием окон.
IDispatch* R ForegroundForm |
Возвращает форму, которая соответствует окну, с которым работает пользователь (может быть null).
LONG RW PixelsPerInch |
Свойство определяет масштабный коэффициент шрифта, по умолчанию это 96 точек на дюйм.
Размеры шрифтов обычно указываются в пунктах, один пункт - это 1/72 дюйма. Масштабный коэффициент шрифта определяет, сколько точек экрана соответствует одному дюйму. Обычно по умолчанию он устанавливается операционной системой на 96, но при больших разрешениях экрана текст при таком масштабе будет мелкий и пользователем может быть выбран другой масштаб.
Значение свойства PixelsPerInch следует указывать в соответствие с теми настройками экрана, которые определены во время разработки программы. Если в последствие программа будет запускаться на других компьютерах, возможно, там будет установлен другой масштабный коэффициент. При этом текст увеличится и может стать несоизмеримым с теми размерам компонентов, которые указаны в программе. Поэтому, если масштабный коэффициент отличается от значения свойства PixelsPerInch, то происходит автоматическое масштабирование размеров компонентов WSO.
IDispatch* R Screen |
Свойство - объект Screen который позволяет получить информацию о параметрах экрана.
IDispatch* R Version |
Свойство - объект Version который позволяет получить информацию о текущей версии WSO.