|
SysCommand("Команда","Параметры")
|
|
Немного нетрадиционная команда, имеющая несколько внутренних функций, управляющих окнами и копированием файлов.
Первый параметр определяет внутреннюю функцию команды. В зависимости от назначения, эта функция может требовать один или два аргумента (указываются во втором параметре).
Функции не чувствительны к регистру.
Изменяет ширину и высоту окна приложения до заданных во втором параметре значений. Могут быть использованы как фиксированные значения, так и числовые переменные.
Сначала указывают ширину окна:
640
...и после запятой указывают высоту:
480
В полном виде команда выглядит так:
SysCommand("ResizeWindow","640,480")
|
** Изменяет размер окна приложения до 320 х 240 SysCommand("ResizeWindow","320,240")
|
Перемещает окно приложения до заданных во втором параметре координат X и Y. Могут быть использованы как фиксированные значения, так и числовые переменные.
Сначала указывают координату X (горизонтальную):
200
...и после запятой указывают координату Y (вертикальную):
150
В полном виде команда выглядит так:
SysCommand("MoveWindow","200,150")
|
** Перемещает окно приложения в точку с координатами 300, 420 SysCommand("MoveWindow","300,420")
|
Перемещает окно приложения в центр экрана. Не требует параметров.
|
** Выравнивает окно приложения по центру экрана SysCommand("CenterWindow","")
|
Помещает окно приложения поверх всех открытых окон. Приложение остается поверх всех окон до тех пор, пока какое-либо другое окно не будет открыто поверх всех окон. Не требует параметров.
|
** Помещает окно приложения поверх всех окон SysCommand("AlwaysOnTop","")
|
В противоположность предыдущей функции, эта функция возвращает окно приложения в обычное состояние.
|
** Восстанавливает обычное состояние окна SysCommand("NotAlwaysOnTop","")
|
Копирует исходный файл в конечный. Оба файла указываются во втором параметре команды.
Файлы указываются либо как:
а) путь к файлу + имя файла, либо
б) макропуть + имя файла
Сначала указывают исходный файл:
<SrcDir>\My Program.ini
... и после запятой указывают конечный файл:
<Windows>\My Program.ini
В полном виде команда выглядит так:
SysCommand("CopyFile","<SrcDir>\My Program.ini,<Windows>\My Program.ini")
Если заданная структура каталогов не существует, то она будет создана.
Имена конечного и исходного файлов могут различаться.
|
** Копирует файл C:\ReadMe.txt в файл D:\ReadMeCopy.txt SysCommand("CopyFile","C:\ReadMe.txt,D:\ReadMeCopy.txt")
|
|
|
Прерывает выполнение текущего скрипта.
Не влияет на другие скрипты, запущенные через таймер.
|
|
** Завершение выполнения скрипта Return()
|
|
|
Дополнительная информация
|
|
Эта команда часто используется в циклах for..next и условном операторе для прерывания выполнения кода при достижении некоторых условий.
|
|
Прерывает выполнение цикла for..next. В то время как команда Return прерывает весь скрипт, Break прерывает только выполнение цикла, и выполнение скрипта продолжается со строки, находящейся непосредственно после цикла.
Не влияет на другие скрипты, запущенные через таймер.
|
|
Этот код бесполезен, но он покажет вам, как именно работает команда Break(). Во время его выполнения вы получите 5 сообщений из цикла i, но только 2 сообщения из цикла n...
maxloop=5 For i=1 To maxloop
Message("Цикл 1","i")
For n=1 To 10
If (n=3) Then
Break()
End
Message("Цикл 2","n")
Next n
Next i
...в то время как тот же самый код с командой Return() отобразит только одно сообщение из цикла i и два сообщения из цикла n. Это потому что команда Return() завершает выполнение всего скрипта.
maxloop=5 For i=1 To maxloop
Message("Цикл 1","i")
For n=1 To 10
If (n=3) Then
Return()
End
Message("Цикл 2","n")
Next n
Next i
|
|
|
Дополнительная информация
|
|
Эта команда часто используется в циклах for..next и условном операторе для прерывания выполнения кода при достижении некоторых условий. Смотрите файл break example.mbd
|
|
|
FileExist("Путь","Переменная")
|
|
Проверяет существование указанного файла и возвращает результат в числовую переменную.
В первом параметре указывается либо:
а) путь к файлу + имя файла, либо
б) макропуть + имя файла
Второй параметр задает имя переменной, в которой будет сохранен результат проверки. Это значит, что вы будете использовать эту переменную для получения информации, а не в качестве входного параметра, и затем сможете сделать выбор с помощью условного оператора.
Проверка существования файла <SrcDir>\text.txt с использованием числовой переменной FileCheck в качестве второго параметра команды:
FileExist("<SrcDir>\text.txt","FileCheck")
...сохранит результат проверки в переменную FileCheck, причем переменная может иметь только два значения:- 1 - файл существует
- 0 - файл не существует
Использование полученного результата в условном операторе является наиболее очевидным выбором:
If (FileCheck=1) Then Message("Файл существует!","") Else Message("Файл отсутствует.","") End
|
|
/* Проверка наличия файла win.ini в каталоге <Windows> и отображение сообщения, если файл найден, и завершение работы - если файл отсутствует */ FileExist("<Windows>\win.ini","check")
If (check=1) Then
Message("Файл win.ini найден.","")
Else Exit() End
|
|
|
FileString("Подстрока","Переменная")
|
|
Проверяет, существует ли указанная подстрока в константе <File>, и возвращает результат в числовую переменную. Используйте эту команду после команды OpenFile() - обычно это бывает нужно для проверки расширения файла.
Первый параметр задает подстроку, которую требуется отыскать, обычно это расширение файла:
.avi
Второй параметр задает имя переменной, в которой будет сохранен результат проверки. Это значит, что вы будете использовать эту переменную для получения информации, а не в качестве входного параметра, и затем сможете сделать выбор с помощью условного оператора.
Проверка типа файла с использованием числовой переменной Type выглядит так:
FileString(".avi","Type")
Результат проверки будет помещен в переменную Type, причем переменная может иметь только два значения:- 1 - подстрока найдена
- 0 - подстрока не найдена
Конечно же, совсем не обязательно использовать команду для проверки расширения файла. Мы можем проверить существование подстроки "Мои документы" в константе <File> и поместить результат в переменную FolderCheck:
FileString("Мои документы","FolderCheck")
Использование полученного результата в условном операторе сделает создание скриптов более легким:
If (FolderCheck=1) Then Message("Спасибо за выбор каталога Мои документы!","") Else Message("Пожалуйста, выберите каталог Мои документы.","") End
|
|
** Проверка, является ли выбранный файл MP3-файлом FileString(".mp3","check")
If (check=1) Then
PlaySound("<File>")
Else Message("Выбранный файл не является MP3-файлом.","") End
|
|
|
SaveVariable("Имя","Переменная")
|
|
Сохраняет содержимое указанной переменной в реестр Windows.
Реестр Windows представляет собой контейнер для хранения данных о конфигурации компьютера. Реестр содержит информацию, на которую ссылается Windows во время операций - профили пользователей, программы, установленные на компьютере, типы документов, с которыми может оперировать каждая из программ, настройки папок, настройки аппаратного обеспечения и т.д.
Вы можете использовать команды SaveVariable и LoadVariable для управления параметрами в разделе реестра, выделенном для вашего приложения:
HKEY_CURRENT_USER\Software\Mediachance\Multimedia Player\RegName
Давайте разделим этот путь на секции:
|
HKEY_CURRENT_USER\Software\Mediachance\Multimedia Player\
|
| Определяет общий путь для всех MMB-приложений
|
Представляет собой имя подраздела в реестре, которое вы можете задать в свойствах проекта:
Даже если опция "Сохранять координаты в реестре" ("Save Last Position in Registry") отключена, указанное имя подраздела будет использоваться для команд SaveVariable и LoadVariable. Таким образом, вы можете задать имя подраздела и отключить эту опцию - имя будет сохранено, и этот путь будет использоваться для хранения и загрузки параметров из реестра.
|
Итак, что нам известно о расположении данных в реестре:
Скомпилированное приложение с именем подраздела Viewer, заданным в свойствах проекта, будет хранить данные в разделе:
HKEY_CURRENT_USER\Software\Mediachance\Multimedia Player\ Viewer
Каждое значение, которое вы сохраняете или загружаете, используя команды SaveVariable и LoadVariable, будет сохранено в этом разделе реестра.
Хорошо, теперь вы знаете, ГДЕ хранятся значения. Более важно знать, КАК сохранять значения в реестр.
Команда SaveVariable сохраняет значения в реестр, используя путь, который мы обсудили выше. Используйте первый параметр команды, чтобы задать имя значения в реестре, например:
User Settings
Второй параметр задает имя переменной, значение которой будет сохранено в реестр. Вы можете использовать как строковые, так и числовые переменные. MMB распознает тип переменной и сохранит значение либо в строковый параметр, либо в параметр типа DWORD (для числовых переменных).
Вы не должны беспокоиться об этом. Вот пример записи значения строковой переменной pass$ в параметр реестра с именем "Password": pass$='МойСекретныйПароль' SaveVariable("Password","pass$")
И пример записи значения числовой переменной HiScore в параметр реестра "UserPoints":
HiScore=4910 SaveVariable("UserPoints","HiScore")
По крайней мере, вы будете сохранять введенные пользователем данные при выходе из программы. Просто убедитесь в том, что вы используете уникальные имена параметров.
При запуске программы используйте команду LoadVariable, чтобы загрузить сохраненные значения - точно так же, как это делают "взрослые" приложения!
|
|
** Сохранение значения строковой переменной EditBox$ в параметр реестра с именем "EditBoxInput" SaveVariable("EditBoxInput","EditBox$")
** Сохранение значения числовой переменной Width в параметр реестра с именем "CurrentWidth" Width=ScreenWidth() SaveVariable("CurrentWidth","Width")
** Сохраняет значение числовой переменной InstFlag, которая служит в качестве флага, сигнализирующего о первом запуске приложения InstFlag=1 SaveVariable("Installed","InstFlag")
|
|
|
Дополнительная информация
|
При работе в режиме разработки команды SaveVariable и LoadVariable используют следующий путь:
HKEY_CURRENT_USER\Software\Mediachance\Multimedia Builder\RegName
Команды управления параметрами реестра работают только с фиксированными путями. Для того чтобы иметь полный доступ ко всем параметрам реестра, используйте соответствующие подключаемые модули.
|
|
|
LoadVariable("Имя","Переменная")
|
|
Загружает из реестра Windows параметр, который был предварительно сохранен с помощью команды SaveVariable и помещает его значение либо в строковую, либо в числовую переменную.
Подробнее о реестре Windows и его параметрах читайте в описании команды SaveVariable.
Чтобы загрузить значение из реестра, укажите его имя в первом параметре команды, например:
UserSettings
Второй параметр задает имя переменной, в которую будет загружено значение из реестра. Вы можете использовать как строковые, так и числовые переменные. Убедитесь, что выбрали верный тип переменной.
Вот пример загрузки значения параметра с именем "Password" в строковую переменную pass$:
LoadVariable("Password","pass$")
И пример загрузки значения параметра с именем "UserPoints" в числовую переменную HiScore:
LoadVariable("UserPoints","HiScore")
Загрузку данных из реестра обычно выполняют во время запуска приложения - для восстановления данных, сохраненных пользователем при окончании последнего сеанса работы с программой.
Разумеется, вы можете загрузить данные, когда захотите :)
|
|
** Загрузка значения параметра "EditBoxInput" в строковую переменную EditBox$ и отображение значения в объекте EditBox LoadVariable("EditBoxInput","EditBox$") LoadText("EditBox","EditBox$")
** Загрузка значения параметра "CurrentWidth" в числовую переменную Width и отображение значения в окне сообщения LoadVariable("CurrentWidth","Width") Message("Сохраненная длина экрана:","Width")
** Загружает значение параметра "Installed", который служит в качестве флага, сигнализирующего о первом запуске приложения LoadVariable("Installed","InstFlag") If (InstFlag=1) Then NextPage() Else Message("Приложение запущено в первый раз.","") End
|
|
|
Дополнительная информация
|
При работе в режиме разработки команды SaveVariable и LoadVariable используют следующий путь:
HKEY_CURRENT_USER\Software\Mediachance\Multimedia Builder\RegName
Команды управления параметрами реестра работают только с фиксированными путями. Для того чтобы иметь полный доступ ко всем параметрам реестра, используйте соответствующие подключаемые модули.
|
|
Пользователи MMB уделяют большое внимание визуальной части своих проектов. Во многих случаях использование стандартных шрифтов (предустановленных с Windows) не является удовлетворительным решением.
MMB помогает и в этом случае - вы всего лишь должны поместить шрифт в дистрибутив проекта. Используя команду InstallFont, MMB проверит, установлен ли шрифт на компьютере пользователя, и, если это необходимо, автоматически установит его.
При выходе из программы шрифт будет удален.
В качестве параметра команды может быть использован либо:
а) путь к файлу + имя файла, либо
б) макропуть + имя файла
|
|
** Установка шрифта LarryLovage.ttf из каталога <SrcDir> InstallFont("<SrcDir>\LarryLovage.ttf")
|
|
|
Clipboard("Send/Get","Переменная")
|
|
Осуществляет взаимодействие с буфером обмена Windows (контейнером, который хранит все, что вы копируете или вставляете).
Используйте первый параметр, чтобы задать функцию буфера обмена, которую вы хотите использовать:
- SEND : помещает значение переменной в буфер обмена
- GET : помещает содержимое буфера обмена в переменную

Второй параметр задает имя либо строковой, либо числовой переменной, которая будет использоваться для взаимодействия с буфером обмена.
Для получения содержимого буфера обмена рекомендуется использовать строковые переменные.
|
|
** Помещает содержимое строковой переменной put$ в буфер обмена Clipboard("SEND","put$")
** Помещает содержимое числовой переменной ClickCount в буфер обмена Clipboard("SEND","ClickCount")
** Помещает содержимое буфера обмена в строковую переменную content$ Clipboard("GET","content$")
|
|
|
Дополнительная информация
|
|
Вы можете работать только с обычным текстом и числами. Обмен более сложными данными (изображениями, объектами) не предусмотрен.
|
|
|