OberonCore
https://forum.oberoncore.ru/

Параметры командной строки запуска
https://forum.oberoncore.ru/viewtopic.php?f=23&t=2318
Страница 1 из 1

Автор:  sacred [ Пятница, 05 Февраль, 2010 13:23 ]
Заголовок сообщения:  Параметры командной строки запуска

Как их прочитать?
Т.е. аналог ParamStr() в Delphi.

Искал-искал, не нашёл. Подскажите, пожалуйста.

Автор:  Иван Горячев [ Пятница, 05 Февраль, 2010 14:10 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

Через WinApi. Если я правильно помню - WinApi.GetCommandLine(W). Можно посмотреть в модуле HostMenus, процедуры Run и ReadCommandLine

Автор:  Trurl [ Пятница, 05 Февраль, 2010 14:18 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

Командную строку можно прочитать с помощью WinApi.GetCommandLine.
Но надо учесть, что обычно параметры командной строки предназначены для самого ББ.
Официальный способ передавать параметры приложению - через флаг /PAR. То, что после него попадает в переменную Dialog.commandLinePars.

Автор:  sacred [ Пятница, 05 Февраль, 2010 14:33 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

Trurl писал(а):
Командную строку можно прочитать с помощью WinApi.GetCommandLine.
Но надо учесть, что обычно параметры командной строки предназначены для самого ББ.
Официальный способ передавать параметры приложению - через флаг /PAR. То, что после него попадает в переменную Dialog.commandLinePars.

Ага!
Тем хуже...
Мне надо написать плагин. Он должен быть в виде exe, которому передаются 2 параметра: входной и выходной файл (имена файлов, естественно). Как можно отключить в своём приложении на BB стандартную обработку параметров командной строки?

Автор:  Trurl [ Пятница, 05 Февраль, 2010 14:39 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

Отключить? Не использовать BlackBox Component Framework.

Автор:  id_ler [ Понедельник, 08 Февраль, 2010 10:38 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

Позвольте расширить тему. Вопрос о том, как создавать собственные параметры запуска и при этом сократить до минимума количество изменений в среде после её установки. Обозначу два крайних подхода.
1. Сделать в bat-файле параметр запуска вызовом процедуры. Что-то типа
Код:
BlackBox.exe --Module.Procedure
Тогда можно будет стартовать ВВ с любой процедуры.
2. Указывать стартовую процедуру при сборке ВВ линкером.
Код:
(!) DevLinker.Link Module.Procedure Program.exe := …
Тогда при запуске ВВ будет выполнять только уже указанные действия, кроме загрузки.
Какие существуют варианты, чтобы выбрать оптимальный?

Автор:  Александр Ильин [ Понедельник, 08 Февраль, 2010 11:16 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

id_ler писал(а):
Тогда можно будет стартовать ВВ с любой процедуры.
А что подразумевается делать после этого? ББ продолжает работать или после выполнения процедуры программа завершается? Во втором случае можно слинковать DLL и использовать стандартный RunDll.exe.

Автор:  id_ler [ Понедельник, 08 Февраль, 2010 12:33 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

Александр Ильин писал(а):
А что подразумевается делать после этого? ББ продолжает работать или после выполнения процедуры программа завершается?
Вопрос навеян темой выделения из ВВ компилятора командной строки для олимпиадных целей, что мне кажется не лучшим вариантом. В данной теме есть задачка
sacred писал(а):
Мне надо написать плагин. Он должен быть в виде exe, которому передаются 2 параметра: входной и выходной файл (имена файлов, естественно)
В общем, для взаимодействия ВВ с внешними файлами, где загрузка среды не требуется. Задачи могут быть самые различные. Главное – вызов нужной процедуры, используя сам ВВ.

Автор:  sacred [ Вторник, 09 Февраль, 2010 10:53 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

id_ler писал(а):
В общем, для взаимодействия ВВ с внешними файлами, где загрузка среды не требуется. Задачи могут быть самые различные. Главное – вызов нужной процедуры, используя сам ВВ.

В моём случае всё делается просто. Так как в моей задаче не используется фреймворк BB, то всё просто. Пишу в разделе инициализации главного модуля вызов нужной мне процедуры, и всё. Никаких доработок в каркас BB не требуется. Всё работает как надо, и параметры через WinApi я спокойно могу обрабатывать, спасибо Ивану Горячеву, и Trurl'ю.

Автор:  id_ler [ Вторник, 09 Февраль, 2010 12:54 ]
Заголовок сообщения:  Re: Параметры командной строки запуска

sacred писал(а):
В моём случае всё делается просто.
Понятно, что каждая задача имеет свое решение. Мое предложение в том, что необходимо ввести однообразие в обработку внешних файлов. Такая обработка может происходить при помощи параметров запуска BlackBox.exe. Например, линкуем ВВ включив в сборку подсистему Dev. Чтобы скомпилировать программный модуль из внешнего редактора, запускаем BlackBox.exe с одним параметром. При этом в каталоге, где находится сборка ВВ создаются папки Code и Sym с соответствующими файлами модуля. При запуске BlackBox.exe с другими параметрами происходит вызов процедур из скомпилированного модуля и выполнение программы.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/