Stardock SkinStudio 8.0.0.1

Кодировки на боковых панелях
  1. Оффлайн

    Автор темы

    Teodorrrro

    Звание: Новичок

    Команда сайта

    Сообщений: 78

    Создано тем: 22

    Рейтинг: 2

    Репа: (9|9|0)

    Для работы SkinStudio 8 необходима WindowBlinds 8.
    Сайт: http://www.stardock.com/products/windowblinds/index.asp
    На боковых панелях программы не удалось убрать кракозябры, за текст в них отвечают Sections.ini и SubSections.ini (причём в главном окне надписи из этого файла отображаются нормально). В файлах менял кодировки - не помогло.

    Скриншот:
    Stardock SkinStudio 8.0.0.1

    За материалами - в личку. biggrin
    Сообщение отредактировал WYLEK 31 июля 2018 - 13:09
    13 января 2014 - 13:35 / #1
  2. Оффлайн

    Leserg

    Звание: Эксперт

    Команда сайта.

    Сообщений: 581

    Создано тем: 72

    Рейтинг: 7

    Репа: (110|110|0)

    Да там, как по мне, "темный лес с бабами ягами"! Насколько мне со своей колокольни удалось выяснить, намудрили с преобразованием кодировок ANSI->UTF8. Короче к каждому символу строки прибавляется нулевой байт. Для нижней половины таблицы ASCII (0-127) - нет проблем, а тех символов, что выше (127-255), получается бред. Возможно я ошибаюсь, т.к. еще неуверенно себя чувствую в поиске и устранению проблем с кодировками.

    Кто ищет, тот всегда найдет!

    13 января 2014 - 14:35 / #2
  3. Оффлайн

    Nexus

    Звание: Бывалый

    Администраторы

    Сообщений: 371

    Создано тем: 18

    Рейтинг: 6

    Репа: (24|24|0)

    teodorrrro, отдаю файл, в котром решена проблема только с боковыми панелями слева, то есть, там, где считываются строки с различных INI файлов. К сожалению, я не могу решить ТЕХНИЧЕСКИ проблему со строками, которые располагаются справа и выделены синим цветом. Дело в том, что они переводятся в Юникод(а потом и в крякозябли) на системном уровне в нулевом кольце, куда отладчику доступ запрещен, только через WinHex можно наблюдать как портятся строки в памяти. Поэтому нету никакой возможности как либо повлиять на перекодировку этих строк. Даже через редактор ресурсов(Ресторатор) нельзя поменять этим строкам никакие свойства. Есть, конечно, теоретическая возможность поменять громаднейший фрагмент кода программы, чтобы правильно формировалось окно с этими стоками, но это уже будет мазохизм, а не решение проблем с крякозяблями biggrin

    Внимание! У вас нет прав для просмотра скрытого текста.


    Leserg, просто добавил в конец файла небольшой фрагмент кода-перекодировщика:

    PUSH EAX
    PUSH EDX
    PUSH ECX
    ADD EAX,EAX
    ADD EAX,6
    PUSH EAX
    PUSH EDX
    PUSH -1
    PUSH EDI
    PUSH 0
    PUSH 4E3
    CALL DWORD PTR DS:[<KERNEL32.MultiByteToWideChar>]
    POP ECX
    POP EDX
    POP EAX
    JMP 004681D4


    На скрине это будет выглядеть так:


    Чтобы эта процедура была задействована нужно поменять это:


    на это:
    Сообщение отредактировал WYLEK 31 июля 2018 - 13:11
    13 января 2014 - 15:35 / #3
  4. Оффлайн

    Leserg

    Звание: Эксперт

    Команда сайта.

    Сообщений: 581

    Создано тем: 72

    Рейтинг: 7

    Репа: (110|110|0)

    Nexus, спасибо! Будет теперь чем заняться на досуге. Я так понимаю, что эту функцию можно использовать везде, где встречаются проблемные места с кодировками. Единственный момент, так это правильно определить место внедрения. wacko

    Кто ищет, тот всегда найдет!

    13 января 2014 - 16:35 / #4
  5. Оффлайн

    Автор темы

    Teodorrrro

    Звание: Новичок

    Команда сайта

    Сообщений: 78

    Создано тем: 22

    Рейтинг: 2

    Репа: (9|9|0)

    Благодарю за проделанное исследование! surprised

    Цитата: Nexus;9969
    нельзя поменять этим строкам никакие свойства


    Кстати, в Радиаликсе при смене ANSI_CHARSET на RUSSIAN_CHARSET для элементов окна с этими злополучными элементами ничего не происходит. ::003::
    Сообщение отредактировал WYLEK 31 июля 2018 - 13:11
    13 января 2014 - 17:35 / #5
  6. Оффлайн

    Nexus

    Звание: Бывалый

    Администраторы

    Сообщений: 371

    Создано тем: 18

    Рейтинг: 6

    Репа: (24|24|0)

    Блин, вот это я облажался! wacko Две недели смотрел не в ту сторону программы, поэтому и не мог найти причину. Теперь вот нашел место возникновения крякозябли и за 5 минут исправил. Сколько времени потрачено впустую...
    Вот английский пропатченый файл:

    RGhost

    Надеюсь, что на этом вопрос возможно будет закрыт happy
    13 января 2014 - 18:35 / #6

Статистика форума, пользователей онлайн: 2 (за последние 20 минут)

Создано тем
865
Всего сообщений
7602
Пользователей
14659
Новый участник
SerGe_95