Stardock SkinStudio 8.0.0.1
Для работы SkinStudio 8 необходима WindowBlinds 8.Сайт: http://www.stardock.com/products/windowblinds/index.aspНа боковых панелях программы не удалось убрать кракозябры,
-
teodorrrro, отдаю файл, в котром решена проблема только с боковыми панелями слева, то есть, там, где считываются строки с различных INI файлов. К сожалению, я не могу решить ТЕХНИЧЕСКИ проблему со строками, которые располагаются справа и выделены синим цветом. Дело в том, что они переводятся в Юникод(а потом и в крякозябли) на системном уровне в нулевом кольце, куда отладчику доступ запрещен, только через WinHex можно наблюдать как портятся строки в памяти. Поэтому нету никакой возможности как либо повлиять на перекодировку этих строк. Даже через редактор ресурсов(Ресторатор) нельзя поменять этим строкам никакие свойства. Есть, конечно, теоретическая возможность поменять громаднейший фрагмент кода программы, чтобы правильно формировалось окно с этими стоками, но это уже будет мазохизм, а не решение проблем с крякозяблями
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
На скрине это будет выглядеть так:
Чтобы эта процедура была задействована нужно поменять это:
на это:26 января 2014 - 00:08 / #11 -
Оффлайн
Звание: Ветеран
Команда сайта
Сообщений: 946
Создано тем: 79
Рейтинг: 8
Репа: (131|131|0)
Баллы: 1681
Был: 2024-12-12 23:16
Лайков: 168
Nexus, спасибо! Будет теперь чем заняться на досуге. Я так понимаю, что эту функцию можно использовать везде, где встречаются проблемные места с кодировками. Единственный момент, так это правильно определить место внедрения.26 января 2014 - 03:26 / #12 -
Благодарю за проделанное исследование!Цитата: Nexusнельзя поменять этим строкам никакие свойства
Кстати, в Радиаликсе при смене ANSI_CHARSET на RUSSIAN_CHARSET для элементов окна с этими злополучными элементами ничего не происходит.27 января 2014 - 21:47 / #13 -
Оффлайн
Звание: Легенда
Админ
Сообщений: 2198
Создано тем: 317
Рейтинг: 10
Репа: (245|245|0)
Баллы: 3595
Был: 2024-12-09 09:32
Лайков: 204
28 января 2014 - 00:10 / #14 -
Кстати, в Радиаликсе при смене ANSI_CHARSET на RUSSIAN_CHARSET для элементов окна с этими злополучными элементами ничего не происходит.
Да строка даже шрифт использует другой чем в этом ресурсе, и свойства строки не используются. Программа использует строку для своих нужд, а свойства отбрасывает. Чтобы прикрутить ей свойства с ресурсов нужно нехило перелопатить код, но оно того не стоит, так как займет много времени для написания кода в одиночку. Вот так по придурошному сделана программа
Друзья, не вставляйте такие большие картинки - шаблон разваливаете. Есть же картинки с превью...
Понял, исправился28 января 2014 - 01:24 / #15 -
teodorrrro, Хоть и поздно, но все же решил проблему и с синими надписями, которые не смог тогда подкорректировать. Если для тебя это еще актуально, то могу выдать модифицированный файл или подправить твой уже русифицированный.8 февраля 2014 - 01:29 / #16
-
Оффлайн
Звание: Ветеран
Команда сайта
Сообщений: 946
Создано тем: 79
Рейтинг: 8
Репа: (131|131|0)
Баллы: 1681
Был: 2024-12-12 23:16
Лайков: 168
8 февраля 2014 - 02:46 / #17 -
Если не трудно, расскажи, как ты одолел и эту проблему.
Лазил не в той стороне программы где нужно было. Поменял в одном месте API название DrawTextW на DrawTextA и проблемные строки писал в ANSI, а не в UNICODE.
Могу скрины фрагмента кода завтра прикрутить.8 февраля 2014 - 02:55 / #18 -
выдать модифицированный файл
Модифицированный исходный файл, его можно просто просканировать заново в редакторе. Дополнительные действия требуются?8 февраля 2014 - 09:53 / #19 -
teodorrrro, Мне не трудно модифицировать любой файл, можешь даже кинуть в личку уже переведенный экзешник. Там нужно поменять-то всего два байта. Единственное "но": ВСЕ синие строки нужно перегонять в ANSI кодировку. Даже синию строку Интернет адреса сайта, которая находится в разделе "О программе", тоже нужно перегонять в ANSI.8 февраля 2014 - 15:22 / #20