Внешняя 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-ru.org/")
-- послать 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
|