(31-07-2018 10:09:54 отредактировано WYLEK) 0

Тема: Stardock SkinStudio 8.0.0.1

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

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

За материалами - в личку. Stardock SkinStudio 8.0.0.1

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

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

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

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

teodorrrro, а что это за файл с расширением .lpu? Куда он тулится? Вобщем немного позже углублюсь в эту проблему, так как
нужно добить одну прогу...

Короче, к каждому символу строки прибавляется нулевой байт.


Точно такая же фигня срабатывет и при работе с Qt приложениями.

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

файл с расширением .lpu


Проект перевода Passolo.

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

teodorrrro, где взять на него ключ? Что-то не найду нигде, может искал не там где надо.

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

ключ?

Ключа в свободном доступе нет, а у меня лицензия.  smile 

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

Найдена причина возникновения крякозяблей на боковых панелях после считывания строк с файлов Sections.ini и SubSections.ini. Проблема в самом коде программы, теперь буду думать как все это нормализовать.

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

teodorrrro, решена проблена с крякозяблями на боковых панелях, добавил свою процедуру на ассемблере и все отлично пашет biggrin  .
Осталось теперь решить проблему со строками, которые справа отображаются синим цветом - там тоже своя заковыка, нужно немного повозиться.

Да, какой тебе нужно файл переделывать, тот что с русским переводом или оригинальный английский файл?

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

Класс! Исходный английский.

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

добавил свою процедуру на ассемблере


А можно подробней? Что за процедура, что она делает, куда и как ты её добавил, если не затруднит. smile 

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

Рейтинг поста: 0

(18-03-2017 21:10:54 отредактировано WYLEK)

Re: Stardock SkinStudio 8.0.0.1

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

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

Показать / Скрыть текст

Stardock SkinStudio 8.0.0.1

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

Показать / Скрыть текст

Stardock SkinStudio 8.0.0.1

на это:

Показать / Скрыть текст

Stardock SkinStudio 8.0.0.1

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

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

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

Рейтинг поста: 0

(18-03-2017 21:13:47 отредактировано WYLEK)

Re: Stardock SkinStudio 8.0.0.1

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

нельзя поменять этим строкам никакие свойства


Кстати, в Радиаликсе при смене ANSI_CHARSET на RUSSIAN_CHARSET для элементов окна с этими злополучными элементами ничего не происходит. Stardock SkinStudio 8.0.0.1

Показать / Скрыть текст

Stardock SkinStudio 8.0.0.1

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

Друзья, не вставляйте такие большие картинки - шаблон разваливаете.
Есть же картинки с превью...

Stardock SkinStudio 8.0.0.1

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

Кстати, в Радиаликсе при смене ANSI_CHARSET на RUSSIAN_CHARSET для элементов окна с этими злополучными элементами ничего не происходит.


Да строка даже шрифт использует другой чем в этом ресурсе, и свойства строки не используются. Программа использует строку для своих нужд, а свойства отбрасывает. Чтобы прикрутить ей свойства с ресурсов нужно нехило перелопатить код, но оно того не стоит, так как займет много времени для написания кода в одиночку. Вот так по придурошному сделана программа wacko 

Друзья, не вставляйте такие большие картинки - шаблон разваливаете. Есть же картинки с превью...


Понял, исправился tongue 

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

teodorrrro, Хоть и поздно, но все же решил проблему и с синими надписями, которые не смог тогда подкорректировать. Если для тебя это еще актуально, то могу выдать модифицированный файл или подправить твой уже русифицированный.

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

Если не трудно, расскажи, как ты одолел и эту проблему.

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

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

Если не трудно, расскажи, как ты одолел и эту проблему.


Лазил не в той стороне программы где нужно было. Поменял в одном месте API название DrawTextW на DrawTextA и проблемные строки писал в ANSI, а не в UNICODE.
Могу скрины фрагмента кода завтра прикрутить.

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

выдать модифицированный файл


Модифицированный исходный файл, его можно просто просканировать заново в редакторе. Дополнительные действия требуются? dud 

Рейтинг поста: 0

Re: Stardock SkinStudio 8.0.0.1

teodorrrro, Мне не трудно модифицировать любой файл, можешь даже кинуть в личку уже переведенный экзешник. Там нужно поменять-то всего два байта. Единственное "но": ВСЕ синие строки нужно перегонять в ANSI кодировку. Даже синию строку Интернет адреса сайта, которая находится в разделе "О программе", тоже нужно перегонять в ANSI.

Рейтинг поста: 0