[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 9 из 9
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
Форум » СИМУЛЯТОР ПУЛЬТА ДИСПЕТЧЕРСКОЙ ЦЕНТРАЛИЗАЦИИ "НЕВА" » Эксперименты в симуляторе » Пытаюсь замутить свой симулятор.
Пытаюсь замутить свой симулятор.
olegpersh999Дата: Воскресенье, 21.04.2024, 12:14 | Сообщение # 161
Станционный диспетчер
Группа: Пользователи
Сообщений: 94
Награды: 2
Репутация: 0
Статус: Offline
Круто! ждем!))
 
V9Дата: Понедельник, 22.04.2024, 12:24 | Сообщение # 162
Поездной диспетчер
Группа: Пользователи
Сообщений: 347
Награды: 7
Репутация: 0
Статус: Offline
V.0.0.5.3 
Это доработка режима архиватора. Какие были проблемы? В версии V.0.0.5.1 и V.0.0.5.1 я в архив докладывал 7zip.exe. А он 200кб занимает. Т.е. архив большой. Но выхода не было. Но проблема возникла: я прикладывал 32х битный 7zip.exe, так как 64х битный просто не запустится у людей с 32х-битными операционками. Но если человек скачал и установил прогу 7zip в 64х битном варианте, то мой 7zip.exe тоже не сможет отработать: в реальности упаковывает библиотека 7zip.dll что расположена в каталоге установки и она должна иметь ту же разрядность, что и 7zip.exe.

Дальше было много приключений, чтобы как-то заставить это все работать. =) Где проблема? Проблема в том, что создатель 7zip при установке своей программы не добавляет себя в путь поиска PATH - https://learn.microsoft.com/ru-ru/windows-server/administration/windows-commands/path

Если бы 7zip бы себя добавлял, то проблем бы не было: просто запускай 7zip, а Windows найдет. Учить пользователей геморройно. Да и не рекомендуется заставлять пользователей что-то делать.

Но при установке 7zip ставится в Program Files. И опять таки проблема: если у пользователя 32х битная или 64х битная, то 7zip ляжет просто в Program Files. А вот если пользователь поставить 32х битный 7zip на 64х битной ОС, то в Program Files(x86). Т.е., надо отрабатывать любую возмжность. А ведь, строго говоря, мы не знаем, где Program Files(PF) будет находиться! Я видел, что операционка и все ее каталоги, включая PF, находтся на диске D:! А можно при установке и вообще кастомное имя задать.

К счастью, Windows дает решение: эти переменные лежат в переменных среды под именами ProgramFiles & ProgramFiles(x86) : https://learn.microsoft.com/en-us/windows/deployment/usmt/usmt-recognized-environment-variables


На таком языке как Си это достать легко. Все переменные среды подаются на вход в прогу в самом начале как параметр envp:
https://learn.microsoft.com/ru-ru/cpp/c-language/arguments-to-main?view=msvc-170



 Но я на Джаве, а там доступа к этому параметру нет вообще! 

........

Эту проблему позже удалось решить. Сейчас Архивариус надежно ищет сам 7zip, корректно копирует файлы перед архивацией, потом корректно 7zip запускает, корректно потом все удаляет. Но! Блин, но как же тяжело через это все проламываться!
Прикрепления: dsim_0_0_5_3.zip (19.1 Kb) · 3368366.png (6.3 Kb) · 9272469.png (43.8 Kb)
 
Форум » СИМУЛЯТОР ПУЛЬТА ДИСПЕТЧЕРСКОЙ ЦЕНТРАЛИЗАЦИИ "НЕВА" » Эксперименты в симуляторе » Пытаюсь замутить свой симулятор.
  • Страница 9 из 9
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
Поиск: