| Shell - Lua библиотека для SciTE
Документация FAQ Регулярные выражения LUA SciTE Director Команды SciTE и Scintilla Сборка Ru-Board Ядро SciTE-Ru Shell SciTE Helper История

### Описание

Внешняя Lua библиотека, расширяющая возможности встроенного lua обработчика SciTE.

### Подключение

Перед использованием функций библиотеки ее необходимо загрузить:

package.cpath = props["SciteDefaultHome"].."\\tools\\LuaLib\\?.dll;"..package.cpath
-- покажем все пути, по которым SciTE будет искать нашу библиотеку
print(package.cpath)
-- загрузка библиотеки
require 'shell'
-- тест успешной загрузки
if shell then
table.foreach(shell, print)
end

### Функции

msgbox (strMessageText, [strTitle], [intOptions]) Описание: Вывод текстового сообщения с кнопками. Параметры: strMessageText - текст сообщения strTitle - текст заголовка сообщения intOptions - числовое выражение, представляющее собой сумму значений, перечисленных в таблице.
Значение | Описание
--- | ---
0 | Выводится кнопка ОК (значение по умолчанию)
1 | Выводятся кнопки ОК и Отмена (Cancel)
2 | Выводятся кнопки Стоп (Abort), Повтор (Retry) и Пропустить (Ignore)
3 | Выводятся кнопки Да (Yes), Нет (No) и Отмена (Cancel)
4 | Выводятся кнопки Да (Yes) и Нет (No)
5 | Выводятся кнопки Повтор (Retry) и Отмена (Cancel)
16 | Выводится значок Stop Mark
32 | Выводится значок Question Mark
48 | Выводится значок Exclamation Mark
64 | Выводится значок Information Mark
0 | По умолчанию в окне выбирается первая кнопка (значение по умолчанию)
256 | По умолчанию в окне выбирается вторая кнопка
512 | По умолчанию в окне выбирается третья кнопка
768 | По умолчанию в окне выбирается четвёртая кнопка
0 | Диалоговое окно выводится в модальном режиме (значение по умолчанию)
4096 | Диалоговое окно выводится в модальном режиме и располагается сверху всех запускаемых приложений
Возвращаемое значение: Возвращает код нажатой кнопки. Значения перечислены в таблице:
Значение | Описание
--- | ---
1 | Нажата кнопка ОК
2 | Нажата кнопка Отмена (Cancel)
3 | Нажата кнопка Стоп (Abort)
4 | Нажата кнопка Повтор (Retry)
5 | Нажата кнопка Пропустить (Ignore)
6 | Нажата кнопка Да (Yes)
7 | Нажата кнопка Нет (No)
Пример использования: if shell.msgbox("Вы уверены?", "SciTE", 65) == 1 then print("Yes") end Авторы: Midas, mimir
inputbox(strCaptionText, strPrompt, strDefaultValue, funcCheckInput, intMinWidth) Описание: Показывает диалоговое окно для ввода данных. Параметры: strCaptionText - текст заголовка окна. Значение по-умолчанию равно "InputBox" strPrompt - текст приглашения над полем ввода. Значение по-умолчанию равно "Enter" strDefaultValue - исходное значение поля ввода. Значение по-умолчанию равно пустой строке "" funcCheckInput - функция для проверки вводимого текста. Получает текст в том виде, в каком он будет вместе с только что поступившим символом и возвращает либо true - принять этот символ, либо false - отклонить ввод. Значение по-умолчанию равно nil - ввод без каких-либо ограничений intMinWidth - минимальная ширина поля ввода в усреднённых символах (если strPrompt или strDefaultValue будут шире, то минимальная ширина автоматически подгоняется под большее из них). Значение по-умолчанию равно 20 Возвращаемое значение: содержит введенный текст. При отказе от ввода возвращает nil Пример использования: print(shell.inputbox("Переименование файла", "Введите новое имя:", "filename.ext", function(name) return not name:match('[\\/:|*?"<>]') end)) Автор: qVaclav
getfileattr (strFileName) Описание: Получение атрибутов файла. Параметры: strFileName - имя файла Возвращаемое значение: содержит атрибуты файла в виде числа Пример использования: local attr = shell.getfileattr("c:\\MSDOS.SYS") print(attr) Авторы: Midas, Дмитрий Маслов
setfileattr (strFileName, intFileAttr) Описание: Установка атрибутов файла. Параметры: strFileName - имя файла iFileAttr - атрибуты файла в числовом виде Возвращаемое значение: содержит true (при удачном завершении) либо false (при неудаче) Пример использования: local result = shell.setfileattr("c:\\MSDOS.SYS", 32) if result == true then print("Атрибуты установлены успешно") else print("error") end Авторы: Midas, Дмитрий Маслов
fileexists (strFileName) Описание: Проверяет существование файла или папки с указанным именем. Параметры: strFileName - имя файла или папки Возвращаемое значение: содержит true если файл (папка) существует, либо false в противном случае Пример использования: local result = shell.fileexists("c:\\MSDOS.SYS") if result then print("Файл существует") else print("Файл отсутствует") end Автор: VladVRO
exec (strCommand, [strOperation], [boolNoShow], [bWaitOnReturn]) Описание: Выполнение внешней программы или открытие файла зарегистрированным приложением. Позволяет запускать файлы, документы и ссылки, а так же открывать каталоги в Проводнике Windows. Параметры: strCommand - имя файла или папки с возможными параметрами запуска. Может содержать %переменные_окружения% strOperation - исполняемая операция из перечисленных в таблице:
Значение | Описание
--- | ---
open | Открыть. strCommand - файл или папка (параметр по умолчанию)
edit | Изменить. Открывает файл на редактирование. strCommand должен быть документом.
print | Печать. strCommand должен быть документом.
explore | Открывает папку в проводнике Windows (с двумя панелями). strCommand - файл или папка
select | Открывает каталог в проводнике Windows и ставит выделение на файл или папку. strCommand - файл или папка
find | Выводит диалоговое окно для поиска файлов по условиям, strCommand должен указывать путь к папке, начиная с которой будет выполняться поиск
properties | Выводит диалоговое окно свойств файла или папки, strCommand - файл или папка
другое | Другая операция над файлом, имеющаяся в его контекстном меню. Например, есть операция "play" для мультимедийных файлов.
boolNoShow - true | false (значение по умолчанию) - скрывать или нет окно запускаемой программы bWaitOnReturn - true | false (значение по умолчанию) - приостанавливать или нет скрипт на время выполнения команды Возвращаемое значение: Первое содержит - при удачном завершении: true или, если функция была запущена с параметром bWaitOnReturn = true, код завершения процесса - при неудаче: false Второе содержит сообщение об ошибке/успехе операции; или содержит текст консольного вывода приложения (при запуске консольных приложений с параметрами boolNoShow = true и bWaitOnReturn = true) Пример использования: -- запустить приложение shell.exec("clipbrd.exe") shell.exec("CMD /c IPCONFIG /all > out.txt", nil, true, false) -- вывести результат консольного приложения print( shell.exec("CMD /c DIR", nil, true, true) ) print( shell.exec("cscript /nologo %WINDIR%\\system32\\eventquery.vbs /?", nil, true, true) ) -- анализ кода завершения процесса if shell.exec("ping -n 1 localhost", nil, true, true) == 0 then print("Сеть работает") else print("Сеть не работает") end -- открыть каталог shell.exec("%TEMP%") shell.exec("%USERPROFILE%", "find") shell.exec("regedit.exe", "explore") shell.exec("%ProgramFiles%", "properties") shell.exec("%ComSpec%", "select") -- открыть ссылку на сайт shell.exec("http://scite.net.ru/") -- послать E-mail shell.exec("mailto:support@mail.ru") -- открыть файл shell.exec("%WINDIR%\\WindowsUpdate.log") -- распечатать файл shell.exec("%WINDIR%\\win.ini", "print") -- редактировать файл shell.exec("%WINDIR%\\winnt.bmp", "edit") Авторы: Дмитрий Маслов
findfiles (strFindMask) Описание: Ищет файлы и папки по маске и результат возвращает в виде таблицы. Параметры: strFindMask - имя файла или папки, или маска с использованием группового символа (wildcard), который заменяет один или несколько символов: знак вопроса (?) может представлять любой одиночный символ; звездочка (*) используется для представления любого символа или группы символов. Возвращаемое значение: Возвращает список найденных файлов и папок в виде нумерованной таблицы (нумерация начинается с 1), где каждый элемент - структура содержащая:
Значение | Описание
--- | ---
name | имя папки или файла
isdirectory | признак файл это или папка (true если папка, false если файл)
attributes | атрибуты (см. ниже)
size | размер файла в байтах
Атрибуты представлены в виде числа, которое может быть комбинацией следующих значений:
Значение | Описание
--- | ---
0x00000001 | Файл только для чтения. Приложения могут читать такой файл, но не могут записывать или удалять его.
0x00000002 | Файл скрыт. Такой файл не включается в обычный листинг каталога.
0x00000004 | Это системный файл. Обычно такой файл является частью операционной системы.
0x00000010 | Это каталог.
0x00000020 | Это архивный файл. Приложения должны использовать этот флаг для копирования, архивирования или удаления.
0x00000080 | У этого файла не установлены другие атрибуты. Это значение корректно только при использовании без остальных флагов.
0x00000100 | Это временный файл. Приложения должны записывать в такой файл только в крайней необходимости. Большая часть данных файла находится в памяти и не сбрасывается на диск, так как файл будет удален.
0x00000200 | Файл является т.н. "Sparse file".
0x00000400 | Каталог является символической связью.
0x00000800 | Файл или каталог сжат. Для файла это означает, что все данные его сжаты, для каталога - что компрессия по умолчанию применяется ко всем его файлам и подкаталогам.
0x00001000 | Данные файла не доступны непосредственно. Означает, что реальные данные файла были физически перемещены на устройства хранения.
0x00002000 | Этот файл или каталог не будут индексироваться службой индексирования.
0x00004000 | Файл или каталог зашифрован. Для файла, это означает, что все данные в файле зашифрованы. Для директория, это означает, что шифрование является умолчанием для вновь созданных файлов и подкаталогов.
0x00010000 | Это виртуальный файл.
В случае неудачи возвращает nil Пример использования: local t = shell.findfiles("C:\\*") if t then table.sort(t, function(v1,v2) if v1.isdirectory ~= v2.isdirectory then return v1.isdirectory else return v1.name:lower() < v2.name:lower() end end ) table.foreachi(t, function(i,v) if v.isdirectory then print(string.format("D%5x %s", v.attributes, v.name)) else print(string.format(" %5x %-30s", v.attributes, v.name), v.size) end end ) else print("not found") end Автор: VladVRO

### Загрузка

Текущая версия Shell: 1.2

shell.dll
Исходный код