Замечания и предложения

Правильно

1 лайк

Понял.

Readln EOF strikes back: https://github.com/pascalabcnet/pascalabcnet/issues/369#issuecomment-455820557 Посмотрите, пожалуйста, что с этим можно сделать.

Добрый день. Есть задача установить PascalABC.NET на терминальный сервер, на котором работают студенты. Вопрос: есть ли возможность рабочую область поместить в рабочий каталог студента, чтобы он был у каждого свой, а не общий, как настроено по умолчанию?

Несколько странный вопрос. Если терминальный сервер запускает один-единственный экземпляр прикладной программы для всех терминальных сессий, как эта программа может знать, где для каждой сессии разместить рабочий каталог? Только настройки терминального сервера. Если же терминальный сервер для каждой сессии запускает свой экземпляр приложения, т.е. фактически является удаленной виртуальной машиной, то каталоги и в этом случае настраиваются средствами терминального сервера.

Вы исходите из того простого факта, что программа, запущенная на терминальном сервере, об этом и не догадывается.

Спасибо за ваш ответ. К сожалению я не понял Вас. Я попытаюсь подробнее объяснить, что мне необходимо от программы на терминальном сервере. При установке программы на терминальный сервер, визард предлагает выбрать путь до рабочего каталога, по умолчанию это “C:\PABCWork.NET”. Пользователи заходят на север под своим пользователем, запускают программу, создают новый проект, который по умолчанию настроен по пути “C:\PABCWork.NET”. Получается, что все пользователи используют один рабочий каталог. Мне же хотелось бы, чтобы при создании нового проекта программа, по умолчанию предлагала сохранить проект в домашней папке пользователя. Самостоятельно я не смог найти такой настройки.

Вы не указали, какой именно терминальный сервер используете. Из моего ответа, как минимум, можно было сделать вывод, что терминальные серверы бывают разные.

Ну, вы можете руками отредачить в:
C:\Program Files (x86)\PascalABC.NET\pabcworknet.ini
Но это всё равно будет работать на все пользователи сразу.

Можно так же установить каждому пользователю свой паскаль, тогда можно будет иметь сразу несколько рабочих папок.

А лучше - приучить своих студентов не копаться в общей куче Program1, Program2 и т.д. А создавать каждый раз нормальный проект в папке своего пользователя, с нормальными названиями каждого файла. Ну и, у меня лично есть ещё папка Test в которую я кидаю весь мусор из временных файлов-тестов, которые не стоят того чтоб создавать отдельную папку.

У каждого и так должен быть свой. Вряд ли один экземпляр приложения способен обеспечить реентерабельность, достаточную для работы множества пользователей.

С чего вдруг? Это если 2 пользователя одновременно решат поменять настройки или что то типа того - у 1 из них вылетит IDE (и то не обязательно). А так - запускаться и работать должно без проблем.

Т.е. Вы считаете, что одна копия компилятора, выполняющегося В ОПЕРАТИВНОЙ ПАМЯТИ терминального сервера параллельно способна обеспечить работы многих пользователей? Смело…

Я писал о том, что каждому пользователю надо запустить свой экземпляр компилятора (или IDE, не суть важно), а Вы о чем? Что надо каждому наделать персональных загрузочных модулей? Это не решение.

А я про

Не запустить а именно установить.

Решение, но ужасное. Как я и сказал:

Пока что ТС не ответил, какой именно терминальный сервер он использует. В нормальных современных системах “установить каждому” не практикуется.

В работе используется Windows Server 2016 с установленной ролью удаленных рабочих столов.

В общем решил свою проблему таким образом: на системном диске C:\ терминального сервера, зажал права для обычных пользователей. После чего они не могут сохранить свой проект по указанному пути C:\PABCWork.NET, а могут сохранить только туда где у них есть права на запись, т.е. в свой домашний каталог. Минус этого решения такой - что путь по умолчанию стоит C:\PABCWork.NET, после попытки сохранения проект студент ловит не обработанное исключение.

На самом деле это не терминальное решение, а игрушка. В режиме подключения к рабочему столу на “Win-сервере” запускается приложение, которое должно каким-то образом узнать, где ему организовывать свои рабочие каталоги для каждого пользователя. Для этого необходимо иметь нормальное управление пользовательскими профилями, которого у Win-сервера нет. Второй вариант - при запуске передавать приложению некоторый набор параметров, на основании которого оно может установить рабочие каталоги. Этого, насколько я понимаю (возможно, неправ), не умеет PascalABC.NЕТ.

Нормальный выход - полноценное терминальное решение с тонким клиентом, например от Citrix. Да, оно платное, зато работает без головной боли.

1 лайк

В PABCWord ещё куча всего, к примеру - папка Samples (примеры). Читать их они хоть смогут? Мне эта папка очень помогла при изучении паскаля.

Да конечно смогут

заметил неточность (устаревший синтаксис) в примерах на ВИКИ. Хотел было предложить правку но попросили представиться. Так как у меня там нету акка, то я странным интуитивно не понятным путем добрался до кнопки регистрации, где и был счастливо послан куда подальше :slight_smile:

Можно ли получить акк на ВИКИ для правки подобных вещей? Либо поправьте самостоятельно. Вот ссылка на страницу с неточностями: http://pascalabc.net/wiki/index.php?title=FAQ_по_Windows_Forms

Поправили

1 лайк