Сейчас на форуме: asfa, bartolomeo (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Подменить системную CodePage с 1252 на 1251 в памяти без перезагрузки windows
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: -4.6 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 05 июня 2012 12:47
· Личное сообщение · #1

Дорого времени суток.
интересует то, что в заголовке.
текст видимо не совсем правильно будет скомпанован, прошу извинить, сижу третьи сутки

есть не русская винда.
в ней стоит программа, с не русским интерфейсом, у которой кодировка ASCII (системная 1252)
программа работает с РУССКИМИ текстовыми файлами.
если файлы в Unicode , то например в notepade ++ русские видно , а если в ASCII ,то кракозябры (были вопросики, пока не выбрал в локализации то, чем можно включить русский в локализации БЕЗ перезагруки винды)


если делать Non-Unicode или менять в реестре c_1250 - c_1255 значение на 1251 нужна перезагрузка.

если менять в WinHex в файле WinLogon c_1250 - C_1255 на 1251, в памяти остаётся но в системе не меняется
в файле Explorer тоже менял по аналогии, в системе изменений нет

с помощью WinHex редактировать память (Edit Main Memory -> System #4 -> Primari Memory)
там лежит таблица символов (1252)
пробовал заменить русские - латиницей - получается,


Получается где-то стоят пара байтов, которые отвечают за текущее подключение адреса кодовой страницы. (codepage, setlocal или как там его ещё можно назвать или обозначить)

мои предположения, что после их подмены, при просмотре WinHex (Edit Main Memory -> System #4 -> Primari Memory) там будет таблица символов с русским

Подскажите где прописывается адрес на системную кодовую страницу, чтобы его подменить прямо в памяти, чтобы сработало без перезагрузки windows.
Или какие ещё соображения.

Текст "немного" не связный, прошу извинить, мозг плохо соображает.

Спасибо.

44ff_05.06.2012_EXELAB.rU.tgz - tablica-ASCII-1252.jpg



Ранг: 47.6 (посетитель), 15thx
Активность: 0.030.02
Статус: Участник

Создано: 02 июля 2012 18:05 · Поправил: mdscorp
· Личное сообщение · #2

просто оставлю тут





123456879 Память проги своей покажи
загрузи её в олю и нажми M



Ранг: -4.6 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 03 июля 2012 13:02
· Личное сообщение · #3

если можно, чуть поподробнее




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 03 июля 2012 14:58 · Поправил: ClockMan
· Личное сообщение · #4

GDI.AddFontResource > WM_FONTCHANGE

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 88.2 (постоянный), 111thx
Активность: 0.070.01
Статус: Участник

Создано: 03 июля 2012 21:47
· Личное сообщение · #5

Хрумер ломают посоны

Ну иво нафих спамеров этих



Ранг: -4.6 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 06 июля 2012 21:22
· Личное сообщение · #6

Airenikus Спасибо за ценное дополнение



Ранг: 47.6 (посетитель), 15thx
Активность: 0.030.02
Статус: Участник

Создано: 07 июля 2012 14:32
· Личное сообщение · #7

Вообщем спамер смотри.

Прога твоя может подгружать локаль "*.nls" сама если это в ней предусмотрено,
в сях например
Code:
  1. char * setlocale ( int category, const char * locale );

либо использовать копию (загружать в своё пространство) системной локали, так вот ...
судя по тому что написано в винхексе ты в памяти нашёл системную локаль, не копию а оригинал и эффекта без перезагрузки ты не добьёшься.
Тебе надо редактировать локаль загруженую в пространство твоей проги

как это сделать я тебе уже написал
формат nls есть у мягких можешь нагуглить запросто, но там не только шрифт там и подстановка символов так как страница меняется в процессе загрузки 3 раза




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 07 июля 2012 21:26
· Личное сообщение · #8

Спамеры тут не нужны, со спамерским софтом ковыряйтесь сами.


<< . 1 . 2 .
 eXeL@B —› Вопросы новичков —› Подменить системную CodePage с 1252 на 1251 в памяти без перезагрузки windows
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати