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