Интерфейс WindowSystemObject

Объект WindowSystemObject предназначен для создания других объектов, остальные объекты могут создаваться, как правило, только при помощи методов других, уже созданных объектов. Подробнее...

Полный список членов класса

Открытые члены

 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 предназначен для создания других объектов, остальные объекты могут создаваться, как правило, только при помощи методов других, уже созданных объектов.

Кроме 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()
}

Результат:

WindowSystemObject.jpg


Методы

About ( void   ) 

Метод выводит на экран окно с информацией о текущей версии WSO.

CreateCOMEvents ( [in] IDispatch *  COMObject,
[out, retval] IDispatch **  pControl 
)

Создание объекта COMEvents.

Аргументы:
COMObject COM-объект к которому подключается создаваемый объект COMEvents
Возвращаемые значения:
pControl объект COMEvents.

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, выбранного таким образом чтобы создаваемая форма не могла менять свой размер или быть минимизирована.

Заметки:
дочерняя форма не отображается кнопкой на панели задач
Пример (JScript):
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()

Результат:
DialogForm.jpg

CreateEventHandler ( [out, retval] IDispatch **  pControl  ) 

Метод позволяет создать объект EventHandler .

Начиная с:
1.1.5.

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()

Результат:
Form.jpg

CreateImageList ( [out, retval] IDispatch **  pControl  ) 

Метод создает новый объект ImageList.

Возвращаемые значения:
pControl объект ImageList

CreatePrintInfo ( [out, retval] IDispatch **  pControl  ) 

Создает объект PrintInfo .

Начиная с:
1.1.6.

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 корректно работающей в скриптовых языках.

Начиная с:
1.1.8.
См. также:
StdDispatch.
Аргументы:
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.

Возвращает:
объект TrayIcon

GetIconCount ( [in] BSTR  FileName,
[out, retval] ULONG *  Result 
)

Метод сообщает, сколько иконок в файле.

Для исполняемых файлов и DLL это число ресурсов типа RT_GROUP_ICON.

Для ICO файла результат = 1.

Начиная с:
1.1.16.

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()

См. также:
ExtractIconEx в MSDN.
Начиная с:
1.1.16.

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.

Загружаются свойства:

Метод создан для многопанельного интерфейса .

Начиная с:
1.1.15.

LoadSysIcon ( [in] LONG  ID,
[out, retval] IDispatch **  Result 
)

Метод загружает системную иконку.

Аргументы:
ID ID системной иконки.
Возможные значения:

Возвращаемые значения:
Result Объект иконки.
См. также:
LoadImage в MSDN.
Пример:

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()

Начиная с:
1.1.16.

Run ( void   ) 

Запуск встроенного цикла обработки сообщений, он будет продолжаться до тех пор, пока видна какая либо форма или до вызова метода Stop.

WSO предусматривает внутренние методы обработки сообщений операционной системы, хотя их можно не использовать, а реализовывать свой цикл обработки событий.

SaveLayout ( [out, retval] BSTR *  Layout  ) 

Сохраняет положение компонентов в строку.

Информация о конкретном компоненте будет сохранена, только если у компонента заполнено свойство UniqueId.

Значение свойства UniqueId необходимо указать также для всех компонентов, у которых DropTarget = "TRUE".

Сохраняются свойства:

Метод создан для многопанельного интерфейса .

Начиная с:
1.1.15.

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 Символьное значение.
Начиная с:
1.1.15.


Полный список свойств

IDispatch* R ActiveForm

Возвращает форму, которая соответствует активному окну (может быть null, если нет активной формы).

См. также:
Form::Active.

Form::OnActivate.

Начиная с:
1.1.14.

IDispatch* R Console

Возвращает объект Console.

Позволяет создать консольное окно.

Начиная с:
1.1.12.

IDispatch* R Controls

Свойство - коллекция созданных форм.

VARIANT_BOOL RW Debug

Свойство, включающее режим отладки.

По умолчанию "TRUE". В текущей версии режим отладки влияет только на функцию Translate.

VARIANT_BOOL RW EnableVistaFileDialog

Если "TRUE", то новый диалог открытия и сохранения файла будет использоваться в Windows Vista и последующих версиях, при использовании FileOpenSaveDialog, Form::OpenDialog, Form::SaveDialog.

Default: "TRUE"

Начиная с:
1.1.16.

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 , перед созданием окон.

См. также:
Themes.
Начиная с:
1.1.6.

IDispatch* R ForegroundForm

Возвращает форму, которая соответствует окну, с которым работает пользователь (может быть null).

См. также:
Form::Foreground.

Form::OnActivate.

Начиная с:
1.1.14.

LONG RW PixelsPerInch

Свойство определяет масштабный коэффициент шрифта, по умолчанию это 96 точек на дюйм.

Размеры шрифтов обычно указываются в пунктах, один пункт - это 1/72 дюйма. Масштабный коэффициент шрифта определяет, сколько точек экрана соответствует одному дюйму. Обычно по умолчанию он устанавливается операционной системой на 96, но при больших разрешениях экрана текст при таком масштабе будет мелкий и пользователем может быть выбран другой масштаб.

Значение свойства PixelsPerInch следует указывать в соответствие с теми настройками экрана, которые определены во время разработки программы. Если в последствие программа будет запускаться на других компьютерах, возможно, там будет установлен другой масштабный коэффициент. При этом текст увеличится и может стать несоизмеримым с теми размерам компонентов, которые указаны в программе. Поэтому, если масштабный коэффициент отличается от значения свойства PixelsPerInch, то происходит автоматическое масштабирование размеров компонентов WSO.

Заметки:
Установка значения свойства на 0 запрещает любое масштабирование компонентов, независимо от текущего масштаба.

IDispatch* R Regions

Свойство - объект Regions который позволяет создавать регионы.

IDispatch* R Screen

Свойство - объект Screen который позволяет получить информацию о параметрах экрана.

IDispatch* R Version

Свойство - объект Version который позволяет получить информацию о текущей версии WSO.


Документация по WSO 1.1. Последние изменения:Wed Aug 12 18:11:31 2015. (C) Веретенников А. Б. 2004-2015