Сегодня выходит новая версия нашего продукта для автоматизированной передачи файлов через локальную сеть/интернет GERMES.
Продукт "заточен" именно под передачу/приём файлов и не обладает возможностью обработки полученных файлов. Все действия по постобработке необходимо выполнять вручную, в BAT либо CMD файлах, используя наш продукт WinScript или же сторонние скриптовые языки/технологии.
Особенно это актуально в банках, где движение файлов очень интенсивное (например, в системах "Клиент-Банк") и есть необходимость надёжной маршрутизации файлов, логгирования и прочего.
Также GERMES применяется для организации систем резервного копирования, однако выполняет лишь функцию непосредственной передачи данных и их синхронизации.
Поэтому принято решение следующую версию GERMES (после 4.1) оснастить возможностью выполнения любых скриптов как на стороне клиента, так и сервера.
Новые версии WinScript и в дальнейшем будут выходить как отдельным продуктом, так и в составе нашего файлового агента GERMES.
суббота, 22 ноября 2008 г.
воскресенье, 2 ноября 2008 г.
WinScript 1.4.0.15
Вышла свежая версия нашего скриптового движка. Реализовано всё то, что было обещано, кроме работы с хард- и симлинками :)
Исправлены найденные ошибки. Скачать новую версию WinScript >>.
Исправлены найденные ошибки. Скачать новую версию WinScript >>.
понедельник, 20 октября 2008 г.
Работа с hardlinks и symlinks
В Windows, при использовании файловой системы NTFS, можно делать так называемые хардлинки и симлинки. Постараюсь пояснить, что это такое.
Допустим, у нас есть каталог, в котором есть какие-то файлы. Мы пишем скрипт (программу и т.п.), где в коде жёстко зашиваем все пути к файлам. Потом переносим этот скрипт на другой компьютер и сталкиваемся с ситуацией, что структура каталогов несколько другая.
Чтобы решить проблему, нужно либо переписать скрипт с учётом новой структуры каталогов, либо сделать так, чтобы он "не заметил" никаких изменений.
Есть консольная команда SUBST, которая позволяет привязать к букве диска любой каталог на любом диске. Но если нам хочется гибкости, то придётся использовать линки. Люди из мира UNIX очень часто пользуются этой возможностью, в Windows эта технология применяется не так широко.
Линк - это ссылка на файл либо каталог. Скажем, каталог - "C:\MyDocs\", а симлинк на него - "C:\MyLinks\Docs\". Для программ нет никакой разницы, к какому пути обращаться. Если мы удалим файлы из "C:\MyLinks\Docs\" - это моментально отразится в исходном "C:\MyDocs\".
Как штатным образом увидеть этот линк, скажем, в Проводнике - я не знаю. Буду благодарен тому, кто подскажет :) Потому что на вид линк на каталог либо на файл ничем от своего оригинала не отличается.
Есть ещё и хардлинки - они, в отличие от симлинков, могут указывать только на файлы. Основное отличие от хардлинков в Linux то, что при удалении хардлинка исходный файл не удаляется. В остальном - тот же симлинк.
В новой версии WinScript будет поддержка создания хардлинков и симлинков. Экспериментируйте, буду ждать замечаний и предложений.
Допустим, у нас есть каталог, в котором есть какие-то файлы. Мы пишем скрипт (программу и т.п.), где в коде жёстко зашиваем все пути к файлам. Потом переносим этот скрипт на другой компьютер и сталкиваемся с ситуацией, что структура каталогов несколько другая.
Чтобы решить проблему, нужно либо переписать скрипт с учётом новой структуры каталогов, либо сделать так, чтобы он "не заметил" никаких изменений.
Есть консольная команда SUBST, которая позволяет привязать к букве диска любой каталог на любом диске. Но если нам хочется гибкости, то придётся использовать линки. Люди из мира UNIX очень часто пользуются этой возможностью, в Windows эта технология применяется не так широко.
Линк - это ссылка на файл либо каталог. Скажем, каталог - "C:\MyDocs\", а симлинк на него - "C:\MyLinks\Docs\". Для программ нет никакой разницы, к какому пути обращаться. Если мы удалим файлы из "C:\MyLinks\Docs\" - это моментально отразится в исходном "C:\MyDocs\".
Как штатным образом увидеть этот линк, скажем, в Проводнике - я не знаю. Буду благодарен тому, кто подскажет :) Потому что на вид линк на каталог либо на файл ничем от своего оригинала не отличается.
Есть ещё и хардлинки - они, в отличие от симлинков, могут указывать только на файлы. Основное отличие от хардлинков в Linux то, что при удалении хардлинка исходный файл не удаляется. В остальном - тот же симлинк.
В новой версии WinScript будет поддержка создания хардлинков и симлинков. Экспериментируйте, буду ждать замечаний и предложений.
среда, 24 сентября 2008 г.
Что нового планируется в следующей версии WinScript
В готовящемся обновлении WinScript добавлены новые функции, которые реализуют весьма интересный функционал. В релизе, скорее всего, будут ещё некоторые изменения, но хочется остановиться именно на этих функциях немного подробнее.
- procedure SetLedState(KeyCode:byte;OnOff:boolean). Процедура, с помощью которой можно зажигать и гасить индикаторы NumLock, CapsLock и ScrollLock программно. Например, вызов SetLedState(1,true) включит NumLock, а SetLedState(2,false) погасит CapsLock.
- function SumToString(value:string;valute:byte):string. Функция, которая преобразовывает сумму в строку прописью. Например, вызов SumToString(10387652.02,1) вернёт строку "десять миллионов триста восемьдесят семь тысяч шестьсот пятьдесят два доллара 02 цента". Поддерживаются пока две валюты: доллар и рубль. Максимальная сумма - 999 999 999. Нужно будет больше либо есть необходимость в других валютах - пишите, добавим. Также имеется функция для преобразования числа в строку прописью (т.е. без валют и дробной части - просто число). Ограничения на размерность числа - то же.
- function SetScreenResolution(PelsWidth,PelsHeight,BitsPerPixel,DisplayFrequency:integer):boolean. Эта функция автоматически выставляет разрешение экрана на заданное. Указываем размер экрана в точках по вертикали, горизонтали и цветность - и всё. Если монитор TFT - то последний параметр устанавливаем в ноль. Функция очень эффективна, если нужна автоматизированно выставлять определённое разрешение для разных задач. Скажем, для работы в AutoCad - максимальное разрешение, для игр - 800х600х24bit. Если попытка была неудачной - функция вернёт false.
- procedure SendKeys(Buffer,WndCaption:string). Крайне полезная функция для взаимодействия с приложениями Windows. Суть ее в следующем: выбранному приложению посылаются наборы комбинаций клавиш, приложение реагирует на них и выполняет какие-либо функции, как будто бы мы действительно нажимали что-либо на клавиатуре, управляя этим приложением. Получаем возможность создания макросов произвольной сложности для управления теми программами, которые как бы и не предусматривают такого поведения с собой :) В примерах к дистрибутиву будут приложены варианты работы с Блокнотом, Калькулятором и некоторыми другими распространёнными Windows-приложениями.
Ярлыки:
новая версия,
SendKeys,
SetLedState,
SetScreenResolution,
SumToString,
WinScript
понедельник, 1 сентября 2008 г.
Обновление WinScript - версия 1.2.0.13
Сегодня вышла новая версия скриптового движка WinScript. Добавлена пачка функций для работы с системным реестром. Также можно управлять реестром компьютеров удалённо, по сети.
Чувствую, пора писать серию статей по использованию скриптового движка, а то что-то активности сисадминов никакой не чувствуется :)
http://www.nsoft-s.com/downloadwinscript.html
Чувствую, пора писать серию статей по использованию скриптового движка, а то что-то активности сисадминов никакой не чувствуется :)
http://www.nsoft-s.com/downloadwinscript.html
Avira Antivir VS WinScript
В нашем корпоративном блоге писалось о том, что антивирус Avira Antivir неадекватно реагирует на WinScript. Как выяснилось, корень проблемы в том, что эвристик антивируса ошибается из-за того, что exe-файл скриптового движка WinScript ws.exe сжат упаковщиком UPX. Достаточно распаковать программу и проблема отпадает.
Командная строка для распаковки: upx.exe -d ws.exe
Командная строка для распаковки: upx.exe -d ws.exe
Ярлыки:
движок,
скриптовый,
троян,
упаковщик,
Avira Antivir,
UPX,
WinScript
вторник, 26 августа 2008 г.
Что же будет в следующей версии?
Готовится к выходу новая версия WinScript.
Что добавлено или улучшено?
функция StrConvert для перевода текстовых строк из одной кодировки в другую;
процедура MsgBox для показа стандартных информационных окон Windows;
процедура SaveScreenToBMP - сохранение экрана в BMP файл;
процедура XDelFolder для удаления каталога со всем содержимым (подпапки, файлы);
функция ExecuteEx - расширенный запуск приложений изнутри скриптов;
функция DatesDelta - вычисление разницы в днях для двух указанных дат (день, месяц, год);
функции FileSetAttr и FileGetAttr для установки и чтения атрибутов файлов;
функции GetWinScriptVer и GetWinScriptReleaseDate для получения версии скрипт-машины WinScript и даты её сборки;
функция GetIdleTime для определения времени простоя системы;
функция LockWorkstation - блокировка пользовательской сессии;
функция GetCmdLineParameters для получения параметров, которые были переданы скрипту прямо из командной строки;
процедуры ScriptSleep и ScriptIdle - для возможности сделать паузу во время выполнения или пропуска тиков процессора во время работы скрипта;
значительное количество новых примеров (папка "\examples").
Список исправленных ошибок:
ошибка в функции GetTextFileLinesCount. Функция возвращала неверное значение, если файл был пуст;
функции DeleteFile и DeleteFiles теперь корректно удаляют файлы с атрибутом ReadOnly;
Также добавлен полный спектр функций для работы с системным реестром (поддерживается удалённое подключение). В следующих постах будут полезные исходники, которые с успехом можно будет применить для удалённой диагностики компьютеров в локальной сети.
Что добавлено или улучшено?
функция StrConvert для перевода текстовых строк из одной кодировки в другую;
процедура MsgBox для показа стандартных информационных окон Windows;
процедура SaveScreenToBMP - сохранение экрана в BMP файл;
процедура XDelFolder для удаления каталога со всем содержимым (подпапки, файлы);
функция ExecuteEx - расширенный запуск приложений изнутри скриптов;
функция DatesDelta - вычисление разницы в днях для двух указанных дат (день, месяц, год);
функции FileSetAttr и FileGetAttr для установки и чтения атрибутов файлов;
функции GetWinScriptVer и GetWinScriptReleaseDate для получения версии скрипт-машины WinScript и даты её сборки;
функция GetIdleTime для определения времени простоя системы;
функция LockWorkstation - блокировка пользовательской сессии;
функция GetCmdLineParameters для получения параметров, которые были переданы скрипту прямо из командной строки;
процедуры ScriptSleep и ScriptIdle - для возможности сделать паузу во время выполнения или пропуска тиков процессора во время работы скрипта;
значительное количество новых примеров (папка "\examples").
Список исправленных ошибок:
ошибка в функции GetTextFileLinesCount. Функция возвращала неверное значение, если файл был пуст;
функции DeleteFile и DeleteFiles теперь корректно удаляют файлы с атрибутом ReadOnly;
Также добавлен полный спектр функций для работы с системным реестром (поддерживается удалённое подключение). В следующих постах будут полезные исходники, которые с успехом можно будет применить для удалённой диагностики компьютеров в локальной сети.
Ярлыки:
обновление,
подключение,
процедура,
реестр,
удалённый,
функция,
WinScript
Подписаться на:
Сообщения (Atom)