Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » [SOFT] X4 Launcher and X4SaveAutoBackup | страница 6
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 6 из 10
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След. | Все страницы
Поиск в этой теме:
Канал X4: Foundations: «[SOFT] X4 Launcher and X4SaveAutoBackup»
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
В таком исполнении ?

Ага. Потом, в ExtractPlayerInfo сплитишь строки по "\n" и обрабатываешь что есть что..

добавлено спустя 19 минут:
alexalsp :
Но это если сев всегда построчный , если что то случится и он где то или весь станет в одну строку

Сейв - это обычный файл XML, и подчиняется общеизвестным правилам, в т.ч. обычно выглядит "правильно".
Узел info небольшой, поэтому мы можем его распарсить через обычные строки. Если XML-файл вдруг станет в одну строку - ридер просто захлебнется от ее прочтения (~0,5 Гб! Хы... ).
В этом случае парсить XML проще XML-движком (XDocument, XElement и пр.).

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

Последний раз редактировалось: igorVL (20:36 04-06-2026), всего редактировалось 2 раз(а)
    Добавлено: 20:36 04-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
Перестрахойня )) посимвольная, лучше перебздеть чем не добздеть, то что обычно всегда получается неприлично ))) , тем более читает совсем ничего.


 Cкрытый текст   (кликните здесь для просмотра)

Код:

[04.06.2026 20:49:28.102] КОНФИГ СОХРАНЕН! Размер: 692 байт
[04.06.2026 20:49:28.263] КОНФИГ СОХРАНЕН! Размер: 692 байт
[04.06.2026 20:49:31.549] [ExtractSaveInfo] Начато чтение: quicksave.xml
[04.06.2026 20:49:31.549] [ExtractSaveInfo] Тип файла: Обычный XML
[04.06.2026 20:49:31.550] [ExtractSaveInfo] Тег </info> найден. Прочитано символов: 1453
[04.06.2026 20:49:31.550] [ExtractSaveInfo] Успешно извлечено 1453 символов XML.
[04.06.2026 20:49:32.779] [ExtractSaveInfo] Начато чтение: save_002.xml.gz
[04.06.2026 20:49:32.779] [ExtractSaveInfo] Тип файла: GZip (сжатый)
[04.06.2026 20:49:32.780] [ExtractSaveInfo] Тег </info> найден. Прочитано символов: 1442
[04.06.2026 20:49:32.780] [ExtractSaveInfo] Успешно извлечено 1442 символов XML.
[04.06.2026 20:50:11.677] [ExtractSaveInfo] Начато чтение: quicksave.xml.gz
[04.06.2026 20:50:11.678] [ExtractSaveInfo] Тип файла: GZip (сжатый)
[04.06.2026 20:50:11.678] [ExtractSaveInfo] Тег </info> найден. Прочитано символов: 1453
[04.06.2026 20:50:11.678] [ExtractSaveInfo] Успешно извлечено 1453 символов XML.
[04.06.2026 20:50:14.214] [ExtractSaveInfo] Начато чтение: quicksave.xml
[04.06.2026 20:50:14.215] [ExtractSaveInfo] Тип файла: Обычный XML
[04.06.2026 20:50:14.215] [ExtractSaveInfo] Тег </info> найден. Прочитано символов: 1453
[04.06.2026 20:50:14.216] [ExtractSaveInfo] Успешно извлечено 1453 символов XML.
[04.06.2026 20:50:16.600] [ExtractSaveInfo] Начато чтение: save_003.xml.gz
[04.06.2026 20:50:16.600] [ExtractSaveInfo] Тип файла: GZip (сжатый)
[04.06.2026 20:50:16.601] [ExtractSaveInfo] Тег </info> найден. Прочитано символов: 1442
[04.06.2026 20:50:16.601] [ExtractSaveInfo] Успешно извлечено 1442 символов XML.



Код:

       private void ExtractSaveInfo(string filePath)
       {
           WriteLog($"[ExtractSaveInfo] Начато чтение: {Path.GetFileName(filePath)}");

           try
           {
               var sb = new StringBuilder();
               string endTag = "</info>";
               string buffer = "";

               bool isGzip = filePath.EndsWith(".gz", StringComparison.OrdinalIgnoreCase);
               WriteLog($"[ExtractSaveInfo] Тип файла: {(isGzip ? "GZip (сжатый)" : "Обычный XML")}");

               using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
               using (Stream stream = isGzip ? new GZipStream(fileStream, CompressionMode.Decompress) : (Stream)fileStream)
               using (var reader = new StreamReader(stream, Encoding.UTF8))
               {
                   int charCode;
                   int totalChars = 0;

                   // Посимвольное чтение для максимальной гибкости
                   while ((charCode = reader.Read()) != -1)
                   {
                       char c = (char)charCode;
                       sb.Append(c);
                       buffer += c;
                       totalChars++;

                       // Поддерживаем размер буфера равным длине тега
                       if (buffer.Length > endTag.Length)
                           buffer = buffer.Substring(1);

                       // Если нашли тег — прерываем чтение, чтобы не читать весь файл
                       if (buffer == endTag)
                       {
                           WriteLog($"[ExtractSaveInfo] Тег {endTag} найден. Прочитано символов: {totalChars}");
                           break;
                       }
                   }
               }

               string result = sb.ToString();
               WriteLog($"[ExtractSaveInfo] Успешно извлечено {result.Length} символов XML.");

               // Передаем данные дальше
               ExtractPlayerInfo(result, filePath);
           }
           catch (Exception ex)
           {
               WriteLog($"[ExtractSaveInfo] КРИТИЧЕСКАЯ ОШИБКА: {ex.Message}");

               ClearAllInfo(true);
               lblPlayerName.Text = $"Ошибка чтения: {ex.Message}";
               lblPlayerName.ForeColor = Color.Red;
           }
       }



добавлено спустя 5 минут:
igorVL :
Если XML-файл вдруг станет в одну строку - ридер просто захлебнется от ее прочтения


Не захлебнется, если читать блоками/посимвольно до </info>.

добавлено спустя 11 минут:
А если он поврежден и нет блока инфо или поломан то что так , что так будет читать все

опять же перестрахй

добавить предохранитель

Код:
        var sb = new StringBuilder();
        string endTag = "</info>";
        string buffer = "";
        const int MAX_SAFE_SIZE = 100000; // 100 КБ - запас

_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (21:25 04-06-2026), всего редактировалось 3 раз(а)
    Добавлено: 21:25 04-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
Не захлебнется, если читать блоками/посимвольно до </info>

В коде ты читаешь строку целиком (ReadLine())... Прикинь строку размером с пол Гига! Хы...
Попробуй читать посимвольно и по ходу парсить что прочитал и понять - когда остановится. Это будет хохма Хы...
    Добавлено: 21:27 04-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
igorVL :
отом, в ExtractPlayerInfo сплитишь строки по "\n" и обрабатываешь что есть что..


Код:
var nameMatch = Regex.Match(xmlContent, @"<player name=""([^""]+)""");
var moneyMatch = Regex.Match(xmlContent, @"money=""([0-9]+)""");
var timeMatch = Regex.Match(xmlContent, @"time=""([0-9.]+)""");
// и т.д.



Спасибо! Я посимвольным чтением собираю только блок <info> (~1.5 КБ), а внутри ExtractPlayerInfo паршу Regex'ом - так кода меньше и от переносов строк не зависит. XML-движок для таких объемов памяти не потянет, а 100 КБ лимита хватит даже на битый файл.


Или я опять не понял из за своей отсталости Хы...

добавлено спустя 2 минуты:

igorVL :
В коде ты читаешь строку целиком (ReadLine())... Прикинь строку размером с пол Гига!


Спасибо, за внмательность Улыбка

Но в финальной версии я не использую ReadLine(). Я читаю посимвольно через reader.Read() со скользящим буфером.

Вот код:

Код:
csharp
int charCode;
while ((charCode = reader.Read()) != -1)
{
    char c = (char)charCode;
    buffer += c;
    if (buffer.EndsWith("</info>")) break;
}


ReadLine() остался только в первых черновиках. В финале от него отказался именно чтобы не зависеть от переносов строк. Так что XML хоть в одну строку, хоть с переносами — работает одинаково.

добавлено спустя 25 минут:
даже если взять

const int MAX_SAFE_SIZE = 1048576; // 1 МБ - перестраховка, так что бы вообще не париться если там прописано 1000 модорв в хистори и патче тегах что бы добраться до конца INFO, 1 секунда , а если битый файл, каким то образом, и потерялся тег /INFO, то дальше 1 метра не пойдет .

а это секунда времени прочитать метр посимвольно.
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (22:02 04-06-2026), всего редактировалось 4 раз(а)
    Добавлено: 22:02 04-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
внутри ExtractPlayerInfo паршу Regex'ом - так кода меньше

Так кода больше Улыбка
alexalsp :
XML-движок для таких объемов памяти не потянет

Чегой?? Хы...
XML-Document вытянет все файлы игры вместе взятые. Особенно если читать их через Stream, а не из файлов на диске.
Брось эти заблуждения ).
alexalsp :
прочитать метр посимвольно

Если файл "битый", т.е. вдруг там нет какого-л. закрывающего тега, XML-парсер это обнаружит на раз-два. Просто надо уметь его "готовить" Хы....

Здесь у тебя фора: небольшой объем данных (info), да и еще находится почти в самом начале. А если бы этот узел был где-то в середине или в конце? Эти ReadLine() и Read() можно было бы выбросить на помойку..

добавлено спустя 6 минут:
XML парсер вычленит все узлы из корневого за доли секунды.
В этих узлах найдет нужный по атрибуту еще быстрее.
Две строчки кода и результат получен.
Без Regex'ов, без чтения и без разбора строк.. Подмигиваю

Последний раз редактировалось: igorVL (22:19 04-06-2026), всего редактировалось 1 раз
    Добавлено: 22:19 04-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
igorVL :
Эти ReadLine() и Read() можно было бы выбросить на помойку..


Поэтому и взял, потому что в начале. Иначе бы думалось что то другое.

Возможно и XML-Document, но он в текущем месте не шибко и нужен Улыбка

Это X4 savegame - структура фиксированная:
Код:
<savegame><info>...</info><universe>...</universe></savegame>.

Info всегда в начале. Я пишу под конкретную игру, а не универсальный XML-парсер.

igorVL :
XML-Document вытянет все файлы игры вместе взятые. Особенно если читать их через Stream, а не из файлов на диске.
Брось эти заблуждения ).


Ну я не сильно разбирался с этим, не по задаче.

Покажи эти две строчки, которые прочитают 2 ГБ файл без OutOfMemoryException:


igorVL :
Две строчки кода и результат получен.
Без Regex'ов, без чтения и без разбора строк..


Как я и сказал, с профи не поспоришь, а я так , любитель на балалайке Хы...

В любом случае, даже при таких нюансах все работает...

На медне почитаю об остальном, если голова не лопнет ))
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (22:33 04-06-2026), всего редактировалось 1 раз
    Добавлено: 22:28 04-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Для вычитки <info> построчного чтения достаточно. Тут точно XML-движок не нужен, даже больше - он будет медленнее, т.к. ему сперва придется загрузить в себя всю савку (пол гига). И это только ради одного узла Info.
Поэтому примененный подход с чтением - самое то.
    Добавлено: 22:31 04-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
igorVL :
Для вычитки <info> построчного чтения достаточно. Тут точно XML-движок не нужен, даже больше


Мы пришли к одному и тому же выводу Улыбка
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....
    Добавлено: 22:36 04-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
Мы пришли

Я не приходил, я это знал изначально Улыбка.
А вот для других делов, если что из савки нужно еще достать - ридер тут уже будет не помощник..
    Добавлено: 22:39 04-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
X4SaveAutoBackup

1.0.12


- Переход с построчного чтения (ReadLine) на посимвольное (Read) — теперь
метод работает с любым форматированием XML (хоть с переносами строк, хоть без).
(Спасибо пилоту - igorVL, за замечание)
- Замена конкатенации строк на StringBuilder - ускорение работы и снижение
нагрузку на память.
- Добавлена защита от битых файлов - если в файле нет закрывающего тега </info>,
метод не будет читать гигабайты, а остановится через 1 МБ и выдаст ошибку.
- Добавлено логирование - чтения данных сева в лог файл.

Примечание: По ошибке был залит файл старой версии 1.0.10 вместо 1.0.11

добавлено спустя 2 минуты:
igorVL :
Я не приходил, я это знал изначально .
А вот для других делов, если что из савки нужно еще достать - ридер тут уже будет не помощник..


Согласен, ридер только для инфо в начале файла. Для других задач - другие подходы. Но мне пока только инфо и нужно, так что метод свою задачу решает отлично. Улыбка
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (23:02 04-06-2026), всего редактировалось 2 раз(а)
    Добавлено: 23:01 04-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Как-то ранее я заикался про тулзу, которая будет находить все ничейные объекты в космосе (особенно ничейные кораблики).
Информация об таких объектах как раз находится в SAVE-файле. А он большой.
Т.е. его действительно придется весь "всасывать" в XDocument, искать все узлы с атрибутом "owner="ownerless"", среди них вычленять все по атрибуту "class="ship_s(m/l)"...
Пока поверхностный анализ таких узлов не дает понимания - где находится информация про их местоположение, хотя бы название сектора..
В свою очередь, такие ничейные объекты находятся внутри узлов зон ("<zone>"), а они, в свою очередь - в секторах (по идее).
Но я пока не нашел конкретной ссылки на местоположение этих зон и названий секторов..

На этом фронте еще поле не паханное, можно сказать. Если есть время и желание - подключайся к вопросу Улыбка
    Добавлено: 23:03 04-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
Если данные в конце файла то можно тупо читать с конца файла (Reverse read)

Если данные размазаны по всему файлу - не поможет.

XML Reader (потоковый)

Плюс: Не грузит весь файл
Минус: Всё равно читает файл последовательно до нужного места

Индексация

При первом сканировании сейва сохранять позиции ключевых узлов:

Но я не знаю как похватать быстро без напряга с разных мест много разной инфы

Но мне это , я надеюсь, и не надо будет Хы...
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....
    Добавлено: 23:09 04-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
alexalsp :
Если данные в конце файла то можно тупо читать с конца файла (Reverse read)

Ну, скажем так, такие ситуации, когда что-то находится на "краях" файла - довольно редки. Поэтому всегда надо быть готовым к сложностям.. Подмигиваю
Например, как в файле языков (описания 09.dat) - в узле могут быть ссылки на другие узлы.. И так вот прыгаешь туда-сюда. Тут никакой последовательный ридер не спасет.
    Добавлено: 23:17 04-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Софтина X4SaveAutoBackup и ее тестирование в частности, выработали у меня навыки частого сохранения (quicksave по "F5") после каждого значимого действия в игре.
А после серии таких сохранений и особенно перед выходом из игры - сохранение уже в слот (save_xxx).
Таким образом, программа X4SaveAutoBackup свое дело сделала; теперь можно ей не пользоваться.. Гы-гы Ой, не могу!..
    Добавлено: 01:32 05-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
1.1.0

Исправления Навигатора Сохранений

1. Исправлено: словари названий для X4 и X Rebirth были общие
- Теперь у каждой игры свои словари

2. Исправлено: поиск .cat файлов
- X4 ищет в своей папке
- X Rebirth ищет в своей папке

3. Исправлено: определение игры при открытии сохранения
- Программа видит X4 или X Rebirth и показывает нужные названия

4. Исправлено: восстановление файлов
- Файл восстанавливается в свой аккаунт в папку save
- Не лезет в чужие аккаунты

5. Исправлено: сообщения при восстановлении
- Показывают куда восстанавливается
- Показывают имя резервной копии
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (02:22 07-06-2026), всего редактировалось 1 раз
    Добавлено: 01:31 07-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
1.1.1
Что удалено:
- Отслеживание запуска/закрытия игр через WMI
- Уведомления в трее при запуске/закрытии игр
- Автоматический бэкап при закрытии игры
- Отображение статуса процессов в интерфейсе
- Галочка "Мониторить процесс игры"
- Галочка "Бэкап только при запущенной игре"
- labelWmiStatus (индикатор WMI)

Как теперь работает:
Бэкапы создаются строго по расписанию (или вручную), независимо от того, запущены игры или нет.
Программа проверяет хеш папки save и делает бэкап только если файлы изменились. Этого достаточно для 99% пользователей.

Свобода Марсу.... минус 1340 строк кода....

https://www.elite-games.ru/conference/viewtopic.php?p=3768260#3768260
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (02:42 12-06-2026), всего редактировалось 1 раз
    Добавлено: 02:40 12-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
X4SaveAutoBackup

1.1.2


- Добавлены настройки резервного копирования:
Стандартная — сохранение в директорию по умолчанию: "Мои документы\Egosoft".
Выборочная — возможность указать собственный путь для хранения резервных копий.

- Оптимизация интерфейса: некоторые подсказки перенесены из элементов ListBox в
заголовки GroupBox, чтобы они не перекрывали рабочее пространство при
взаимодействии со списками.

- Навигатор сохранений:
Переработан механизм работы с директориями: теперь можно задать путь к корневой
папке бэкапов. В ней должны находиться папки аккаунтов, содержащие ZIP-архивы
или подпапки "backup_", созданные программой по умолчанию.

Все найденные сохранения добавляются в дерево и автоматически сортируются по
времени (от старых к новым). Добавлена проверка на дубликаты: программа
исключает повторное добавление файлов с идентичными параметрами (имя, дата, время).

- В списке кастомных папок чек бокс работает как выключатель бэкапов:
Отмечен - бэкапы добавились в дерево , снят - удаляются с дерева.
Удаление путей только выделенных. Можно выделять по КОНТРАЛУ несколько ,
ШИФТ+А все и через кнопку Удалить удалять не нужные пути.

 Cкрытый текст   (кликните здесь для просмотра)

_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (03:59 14-06-2026), всего редактировалось 1 раз
    Добавлено: 03:36 14-06-2026   
Shadowman
 265 EGP


Рейтинг канала: 5(205)
Репутация: 42
Сообщения: 1409
Откуда: Альфа Центавра
Зарегистрирован: 03.12.2003
День добрый!
alexalsp :
Я пока отзывы и предложения слышал от тебя и вот появился Shadowman

Раз уж меня упомянули, дополню скриншоты выше.

 Cкрытый текст   (кликните здесь для просмотра)

Мне интересно настроить как раз эти две штуки (выделил красным).
А тут - облом. Вероятно, кнопочки вверх-вниз работают, но никак этого не видно и нельзя понять результат их нажатия.
Понимаю, что увеличение шрифтов не всегда гладко проходит Улыбка
    Добавлено: 11:43 14-06-2026   
igorVL
 65 EGP

Рейтинг канала: 6(280)
Репутация: 2
Сообщения: 302
Откуда: Москва
Зарегистрирован: 04.08.2023
Shadowman :
А тут - облом.

Интересный эффект Хы...
У тебя какая-то нестандартная тема Windows стоит? Она и меняет вид окна на такой ))
Шрифты на скриншоте не оригинальные, да еще и полу-жирным (Demi Bold). Вот и съехало все ).
    Добавлено: 12:52 14-06-2026   
alexalsp
 542 EGP


Модератор
Рейтинг канала: 14(2392)
Репутация: 56
Сообщения: 4881

Зарегистрирован: 12.08.2014
Странно, у меня с текстом все нормально Совсем запутался...

 Cкрытый текст   (кликните здесь для просмотра)




Какое разрешение экрана ?

добавлено спустя 4 минуты:
Конечно под всякие не стандартные темы наст подстраиваться не вариант , с интерфейсом можно повозиться и дать возможность его раздвигать и состояние записывать, что бы каждый раз не ерзать его, но ты же понимаешь ....

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

По ходу дела уменьшила окно а шрифт остался, либо у тебя шрифт увеличен , что навряд ли, я и так делал для слепых размер шрифта, как для себя )))

добавлено спустя 12 минут:
Я поставил в винде шрифт 150% и форма программы ни как не съехала и не изменилась, только заголовок увеличился.

Все дело в вашей теме. которая вредит своему хозяину Улыбка
_________________
CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6

Пользуйте мои моды как хотите....

Последний раз редактировалось: alexalsp (13:10 14-06-2026), всего редактировалось 2 раз(а)
    Добавлено: 13:10 14-06-2026   
Канал X4: Foundations: «[SOFT] X4 Launcher and X4SaveAutoBackup»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Пить не выход. Не пить выход от пить на не выход. (закодировал Thorn)

  » [SOFT] X4 Launcher and X4SaveAutoBackup | страница 6
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18