Сделал версию HostArgs для Windows (см. вложение). Используется процедура WinApi.GetCommandLineW, возвращающая строку, которая затем разрезается на кусочки. Всё это происходит при первом обращении к GetParam() или ParamCount()
Насчёт названий я не возражаю. Давайте подумаем, как лучше назвать. Я выбрал название, которое, вроде бы, использовалось в Модуле-2 и в Обероне-2, а вместе с одним из компиляторов Оберона-07 поставляется модуль extArgs. Название процедур, однако, я взял из Паскаля (правда там не GetParam, а ParamStr). Согласен, что они слишком уточняющие. В общем, я и хотел потом их поменять.
Иван Денисов предлагал назвать модуль Env, но HostEnv в ББКП уже существует, и я не понял, что с ним делать (встроить свой код в него?).
Ещё вариант названия модуля: Params.
Params.Get(n, OUT s)
Params.Count(): INTEGER
Название программы всегда идёт в списке параметров коммандной строки под номером ноль: в Виндоусе, Линуксе, Маке и даже в Досе. Думаю, здесь что-то менять не стоит ради традиции, что ли, и во избежание путаницы. Программистам на ББ аргументы командной строки, пожалуй, нужны в довольно редких случаях. Мне нужны
Если менять, то нужна ещё какая-то GetAppName(s), не знаю как её правильно назвать.
UPD:
И. Денисов предложил сделать модули ConsArgs, ConsArgsLin, ConsArgsWin.