Перейти на главную страничку сайта (список статей, файлы для скачивания)
LangMF - бесплатный скриптовый язык программирования, основанный на ядре языка VBScript, но с большими усовершенствованиями и расширением возможностей последнего. LangMF объединяет простоту и лёгкость использования VBScript с мощью и универсальностью "настоящего" Visual Basic, а также имеет большой ряд специфических "вкусностей", разработанных специально и не присутствующих ни в Visual Basic, ни в VBScript.
Официальный сайт проекта - langmf.ru.
Официальный форум проекта - forum.langmf.ru.
Последняя версия LangMF всегда находится, как правило, здесь: langmf.ru/ftp/LangMF_setup.exe.
Различные файлы для скачивания, связанные с LangMF, и не только: langmf.ru/ftp/.
Помимо возможностей VBScript, LangMF обладает следующими основными преимуществами:
Для полной интерактивной установки запустите инсталлятор LangMF_setup.exe. После установки вы получите:
Создайте текстовый файл с расширением mf и поместите в него следующий код:
' Скрипт всегда запускается с процедуры Load ' cmdLine - параметр, в который передаются аргументы командной строки <#Module=mod> Sub Load(cmdLine) MsgBox "Привет, LangMF!" endmf ' завершает выполнение скрипт-движком всех процессов и очищает все ресурсы End Sub <#Module>
Запустите скрипт двойным щелчком.
Как видно, по синтаксису - это обычный Visual Basic. Если вы уже знакомы с VBScript, Visual Basic, VBA, VB.NET или любыми другими диалектами Basic - вы и не заметите, что пишете на другом языке.
Для компиляции вам понадобится скачать файл LangMF_Real.exe (см. ссылки в начале статьи).
Сделайте резервную копию вышеприведённого скрипта, а затем выполните команду "Компилировать" контекстного меню файла скрипта. После этого откройте файл скрипта текстовым редактором, и вы увидите, что исходный код скрипта прочитать уже невозможно. Запустите откомпилированный mf-скрипт двойным щелчком, чтобы убедиться в его работоспособности.
Создайте рядом со скриптом текстовый файл make.ini следующего содержания:
[options] type=exe file=mf.exe
Выполните команду "Компилировать" контекстного меню файла скрипта. На этот раз вы получите исполняемый файл mf.exe, который будет работать и на машинах, где не установлен LangMF. Запустите mf.exe двойным щелчком, чтобы убедиться в его работоспособности. Примечание: первый запуск mf.exe на машине, где не установлен LangMF, потребует прав администратора.
Создайте текстовый файл с расширением mf и поместите в него следующий код:
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long <#Module=mod> Function test(hwnd, lParam) Dim tLen, sSave tLen = GetWindowTextLength(hwnd) sSave = Space(tLen) GetWindowText hwnd, sSave, tLen + 1 form.List(1).AddItem "hWnd = " & CStr(hwnd) & vbTab & "Text = " & sSave Test = True End Function Sub Load(cmdLine) form.width = 4416 form.height = 2940 form.Center form.Add "List", 1 form.List(1).move 60, 60, 4200, 2400 form.NoMoveMouse = true form.Show EnumWindows sys.callback("test"), 0 End Sub <#Module> <#Form=form> Sub Form_Unload() endmf End Sub <#Form>
Запустите скрипт и вы увидите форму со списком заголовков окон верхнего уровня, открытых в вашей системе в настоящий момент. Скрипт демонстрирует возможность вызова функций Win32 API с организацией обратного вызова (callback), а также лёгкость создания графического интерфейса.
Создайте текстовый файл с расширением vbs и поместите в него следующий код:
code = "" code = code & "<#Module=mod>" & vbCrLf code = code & "Sub Load(cmdLine)" & vbCrLf code = code & "MsgBox ""Привет, LangMF!"" code = code & "endmf" & vbCrLf code = code & "End Sub" & vbCrLf code = code & "<#Module>" & vbCrLf Set LMF = CreateObject("Atomix.LangMF") LMF.Command code
Запустите скрипт двойным щелчком. Вы написали программу на VBScript, которая динамически исполняет код LangMF с помощью COM-сервера "Atomix.LangMF".
Запустите командный интерпретатор cmd.exe и выполните следующую команду:
"C:\Program Files\LangMF\LangMF.exe" $ for a=1 to 5 : msgbox a : next : sys.endmf
Вы динамически исполнили код LangMF из командной строки. Подобный приём может пригодиться в CMD/BAT файлах.
Директива <#--AddRus> позволяет добавить поддержку написания имен переменных, классов, типов, функций и процедур на русском языке. Создайте текстовый файл с расширением mf и поместите в него следующий код:
<#--AddRus> <#Module=mod> Тип МойТип Масс(100) as long Числ as long Конец Тип '--------------------------------------- Процедура Load(cmdLine) Dim Объект as МойТип randomize timer Для Счётчик = 0 По 100 Объект.Масс(Счётчик) = int(rnd*100) Дальше Сообщение Объект.Масс(50) Сообщение Объект.Числ EndMF Конец Процедура <#Module>
Запустите скрипт двойным щелчком, чтобы убедиться в его работоспособности. Примечание: возможно, такой кириллический синтаксис кому-то может показаться коверканьем языка (хотя, к примеру, в среде 1С:Предприятия это уже давно норма, и таким способом написаны сотни тысяч строк кода типовых и нетиповых конфигураций, поставляемых фирмой 1С и используемых повсеместно). Однако, директиву <#--AddRus> вполне можно использовать только ради объявления кириллических идентификаторов в коде, что действительно может быть весьма и весьма удобно, т.к. такие идентификаторы "документируют" сами себя своими именами. Например:
<#--AddRus> <#Module=mod> Sub Load(cmdLine) ТекстДляВывода = "значение" MsgBox ТекстДляВывода EndMF End Sub <#Module>
После полной установки LangMF в каталоге C:\Program Files\LangMF\Examples вы найдёте свыше 100 примеров скриптов, которые демонстрируют различные возможности языка. А здесь далее - несколько скриншотов, которые позволят вам немного представить себе возможности LangMF по организации графических интерфейсов (имейте в виду, что LangMF - это "всего лишь" скриптовый язык).
Организация меню окна:
Использование OpenGL:
Отслеживание положения курсора мыши:
Градиентная заливка:
Использование скинов:
Кнопки в стиле Windows XP:
Людоговский Александр
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.