Перейти на главную страничку сайта (список статей, файлы для скачивания)
Библиотека 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 При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.