Перейти на главную страничку сайта (список статей, файлы для скачивания)
Библиотека WshExtra.dll - небольшой ActiveX, который может быть использован в любых средах, которые в состоянии выступить в роли OLE-клиента, например, в MS Office (VBA), 1C:Предприятии, административных скриптах Windows (.vbs и .js) и т.д. Автор программы - Dino Esposito. Библиотека WshExtra.dll распространяется свободно. Вы можете скачать библиотеку здесь (версия 1.0.0.1 от 30.09.2001г., архив 14 447 байт). Ссылка на первоисточник здесь. Примеры кода в настоящей статье приводятся на языке VBScript для административных сценариев Windows.
Возможности, предоставляемые библиотекой:
Порядок установки:
Библиотека предоставляет три объекта:
| Объект | ProgID |
|---|---|
| Clipboard | WshExtra.Clipboard |
| FileChooser | WshExtra.FileChooser |
| FileQuery | WshExtra.FileQuery |
Методы:
| Метод | Описание |
|---|---|
| Copy(ByVal bstrText As String) | Копирует переданную строку в буфер обмена. |
| Paste() As String | Возвращает содержимое буфера обмена. |
Пример кода:
Set WshExtra = CreateObject("WshExtra.Clipboard")
WshExtra.Copy("Запись в буфер обмена")
MsgBox WshExtra.Paste()
Замеченные неприятности: похоже, объект не очищает буфер перед копированием. Так что если в буфере до этого лежал текст в нескольких форматах, то ansi-текст заменяется на переданную методу Copy строку, а юникод, например, остаётся как был. В результате где-то вставится потом новый текст, а где-то - старый. К примеру, в Блокнот вставляется старый текст, который был раньше.
Как можно проверить: скопировать в буфер что-нибудь из Блокнота, потом запустить, например, такой скрипт на JScript:
cb=new ActiveXObject("WshExtra.Clipboard");
cb.Copy("Текст для проверки.");
WScript.Echo(cb.Paste());
После этого в том же Блокноте вставить текст из буфера через Ctrl+V или подобным способом.
За замечание об очистке буфера - благодарность участнику сообщества под ником YMP.
Свойства и методы:
| Метод/свойство | Описание |
|---|---|
| Browse(ByVal bstrPath As String) As String | Вызывает диалог открытия файла. В качестве параметра передаётся начальный каталог. |
| FileCount As Long | Количество файлов, выбранных пользователем. Только чтение. |
| Filter As String | Фильтр по типам файлов, которые может выбрать пользователь. Представляет собой строку с описаниями фильтров и их масками, разделенные символом "|". Например: "INI-файлы (*.ini)|*.ini|Все файлы|*.*|". |
| Title As String | Заголовок окна выбора файлов. |
Пример кода:
Set WshExtra = CreateObject("WshExtra.FileChooser")
WshExtra.Title = "Заголовок окна открытия файла"
WshExtra.Filter = "INI-файлы (*.ini)|*.ini|Все файлы|*.*|" 'маска
MsgBox WshExtra.Browse("C:\") 'начальный каталог
MsgBox "Количество выбранных файлов - " & WshExtra.FileCount
Объект FileQuery представляет из себя коллекцию, содержащую пути к файлам. Свойства:
| Свойство | Описание |
|---|---|
| Count As Long | Количество элементов коллекции. Только чтение. |
| FileSpec As String | Маска пути для поиска/фильтрации файлов. Может содержать подстановочные символы "*" и "?". Например, "C:\*.sy?". |
Пример кода:
Set WshExtra = CreateObject("WshExtra.FileQuery")
WshExtra.FileSpec = "c:\*.sy?"
sFiles = ""
For Each elem In WshExtra
sFiles = sFiles & elem & vbCrLf
Next
MsgBox "Найдено папок/файлов - " & WshExtra.Count & vbCrLf & vbCrLf & sFiles
Составление - Людоговский Александр
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.