Printable Version of Topic
Click here to view this topic in its original format |
Forums > Глюкодром > Проблема с фонтами в XP |
Posted by: valja on 30-07-2011, 18:44 |
Имеется старая 16-бит Win программа, часть выводов в чисто текстовое окно. Установок фонтов у программы нет, используется системный фонт. На всех машинах, кроме одной, выход совершенно нормальный:![]() На одной из машин с какого то момента фонт совсем другой (причем в других программах аномалий не замечено): ![]() Кто нибудь имеет идеи, где копать? Или может опознать, что это за фонт (тогда можно порыться в реестре, где он вылазит и как с ним бороться). Ближайший фонт, что нашелся в системе, это MS Gothic, однако буквы здесь заметно уже: ![]() |
Posted by: Set on 31-07-2011, 02:02 |
Правый клик на иконку в левом верхнем углу окна, там в меню настройки для фонтов. |
Posted by: valja on 31-07-2011, 09:17 | ||
Restore Move Size Minimize Maksimize Close |
Posted by: Set on 01-08-2011, 02:38 |
Возможно поможет... http://wiki.answers.com/Q/How_do_you_change_the_system_font_in_Windows_XP (http://wiki.answers.com/Q/How_do_you_change_the_system_font_in_Windows_XP http://onhax.wordpress.com/2010/01/08/how-to-change-windows-xp-default-system-font/ (http://onhax.wordpress.com/2010/01/08/how-to-change-windows-xp-default-system-font/ |
Posted by: valja on 01-08-2011, 20:09 | ||
По первой ссылке: Прокрутил весь "Advanced" tab, все как и на других машинах, т.е. окошко фонта либо неактивно, либо Tahoma. По второй ссылке: Все содержимое ...\FontSubstitutes во всех машинах точно такое же, а конкретно указанные фонты MS Shell Dlg REG_SZ Microsoft Sans Serif MS Shell Dlg2 REG_SZ Tahoma Готики нигде не видно. Попутно обнаружил еще оду деталь. У программы есть и возможность вывода экрана прямо на принтер (я этим раньше никогда не пользовался, а выводил тексты или графику, соответственно, в .txt или .bmp файлы). При выводе на принтер открывается стандартное окошко "Print". И тут при печати фонт нормальный, как на первом рисунке. То есть, эта дурацкая подмена фонта происходит только при выводе на экран. И что самое странное, на других программах я подобной замены (пока) не заметил. |
Posted by: Set on 02-08-2011, 02:11 |
На всех скриншотах определённо не Microsoft Sans Serif или Tahoma, значит используется не системный фонт. Я бы переставил прогу с нуля, удалив её конфигурационные файлы и записи в реестре. |
Posted by: Brait on 02-08-2011, 06:11 | ||
|
Posted by: valja on 02-08-2011, 19:13 | ||
|
Posted by: valja on 02-08-2011, 20:24 | ||
В ветке "Fonts" туева хуча фонтов, но мой глаз ничего подозрительного не заметил. Поскольку "неправильный" фонт какой то Gothic, то просканирвал реестр, вдруг где то лишняя запись, указующая на него, но все записи, содержащие Gothic идентичны записям в нормальной машине. Аналогично и с Courier, который, по идее, должен быть на выходе. И с юзером это не связано, бяка вылазит при любом юзере. |
Posted by: Set on 03-08-2011, 01:24 |
Если это Astrolog 5.41G, то в его сорсах как раз по фонтам очень даже есть кое чего, включая описание какие и где ему нужны, какие-то параметры для них... лень там копаться. ![]() |
Posted by: valja on 03-08-2011, 13:15 | ||||
То есть, теперь мне нужно искать, кто и где заменяет "Terminal" другим фонтом. |
Posted by: valja on 03-08-2011, 22:04 |
Интересный фонт этот "Terminal" оказался. Character Map и Notepad его видят и нормально отображают, Word и WordPad его не видят, в реестре в ветке "Fonts" его тоже не видать... Оказалось, что в каталоге \Windows\Fonts их вагон и маленькая тележка, все hidden - 8514oeme.fon, куча appXXX.fon (где XXX разные номера), cgaXXXX.fon, dos737.fon, dosapp.fon, egaXXXXX.fon, vgaXXX.fon, vgaoem.fon итд. Правда, большинство из них видно только в Windows Commander. Как виндовоз определяет, когда какой использовать? К какому из них привязан Character Map (там он вполне имеется в списке фонтов, в одном экземпляре)? Куда копать дальше? В общем, крыша едет не спеша... |
Posted by: mts on 03-08-2011, 22:21 |
Он же не ТrueType, вот Word и WordPad его не видят. |
Posted by: FiL on 03-08-2011, 23:42 |
a номера - это кодовые таблицы. русские там, латинские, прочие ивриты... |
Posted by: valja on 04-08-2011, 09:36 |
Пока вижу две возможные причины: 1. На "больной" машине отсутсвует именно нужный "Terminal" и виндовоз по своей логике подбирает другой. Вечером сравню наличие данных фонтов с другими машинами. Но скорее всего фонт имеется. 2. Кауая то бяка переадресует "Terminal" на готику. Где копать, пока неясно. |
Posted by: valja on 04-08-2011, 22:34 | ||
То есть, дело не в отсутствии фонта, да и видимые установки аналогичные. И придется переходить к пункту 2 - т.е. искать, кто или что подменяет в данном случае "Terminal". Правда, где и чем копать, пока не ясно. ![]() |
Posted by: Siget on 04-08-2011, 22:49 |
А переустановить систему не проще?! Раз проблема только на одной машине. Хотя поднятие процесса кодокопательства и радует ![]() ![]() |
Posted by: valja on 05-08-2011, 14:20 | ||||
![]() За ...надцать лет пользования привык к одному фонту и этот готик режет глаза. |
Posted by: Гордый on 05-08-2011, 14:26 | ||
![]() |
Posted by: Siget on 05-08-2011, 14:29 | ||||
хотел спросить то же ![]() |
Posted by: valja on 05-08-2011, 14:33 | ||||||
![]() Только для того, чтобы реально помогало, надо учиться лет ...надцать и более. 10 лет занятий это еще начинающий астролог ![]() |
Posted by: Siget on 05-08-2011, 14:42 | ||||||||
![]() |
Posted by: Гордый on 05-08-2011, 14:52 | ||||||||
![]() Легче в Тибет и медитировать. ![]() |
Posted by: Damballah on 05-08-2011, 15:59 | ||
![]() |
Posted by: valja on 05-08-2011, 16:46 | ||
|
Posted by: valja on 05-08-2011, 16:48 | ||
![]() |
Posted by: Siget on 06-08-2011, 12:59 | ||||
![]() |
Posted by: Damballah on 06-08-2011, 13:32 |
Это прога для плохих или начинающих хиромантов. ![]() ![]() |
Posted by: Гордый on 06-08-2011, 17:00 | ||||||||
![]()
![]() |
Posted by: Damballah on 06-08-2011, 20:59 | ||
![]() |
Posted by: Brait on 08-08-2011, 07:25 | ||
А если Windows не может найти какого-нибудь фонта, то он ищет адекватную замену в "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\FontSubstitutes". Советую просто экспортировать все реестровые ветки "Fonts", "FontMapper", "FontSubstitutes" в *.REG файлы, и импортировать их в реестр на неадекватной машине. Вдруг какую-нибудь строчка малозаметна, или различие всего в одном символе, или того паче английский символ в имени фонта заменен на русский... |
Posted by: FiL on 08-08-2011, 17:54 | ||||
|
Posted by: Siget on 08-08-2011, 18:14 |
Н-да, богат же на образы русский язык ![]() ![]() ![]() |
Posted by: Damballah on 08-08-2011, 19:21 | ||||||
А херомания, как я сказал выше... ![]() ![]() |
Posted by: Damballah on 08-08-2011, 19:24 | ||
![]() |
Posted by: FiL on 08-08-2011, 19:38 | ||
|
Posted by: ns38 on 08-08-2011, 20:00 |
херолюбители.... ![]() ![]() |
Posted by: ArCanon on 08-08-2011, 20:13 |
хероманьяки! Причем не только в этой теме обсуждают ![]() ![]() |
Posted by: taurus66 on 08-08-2011, 20:16 | ||
![]() |
Posted by: Damballah on 08-08-2011, 20:53 | ||
![]() |
Posted by: mts on 08-08-2011, 22:10 | ||||
|
Posted by: valja on 08-08-2011, 22:15 | ||
![]() Взял третью, здоровую, заинсталлировал на больную ВСЕ фонты, имеющиеся на здоровой, экспортирвал названные ветки реестра - не помогло. Но слегка прояснило картину. Похоже, что при простом удалении каких то TT фонтов были удалени и какие то другие записи (в каких то других ветках реестра) и при инсталляции фонта обратно (вместе с перезаписью названных веток реестра) эти записи не восстановились. Т.е. эта бяка в каких то други ветках реестра. Сделал одной больной машине Windows repair, однако сие не помогло. Зараза сидит где то глубже ![]() |
Posted by: valja on 08-08-2011, 22:47 | ||
![]() Теперь, скорее всего, попробую тупо, но методично ![]() Конечно, есть и прямой путь - clean install, НО - больна моя главня машина, на которой все время сижу, и нет желания возится с инсталляцией всего софта, да и негоже простаивать четвероногим (да и другм) животным ![]() К тому же куда как интереснее выяснить, откуда ноги растут ![]() ЗЫ А вы, господа продолжайте ![]() ![]() |
Posted by: Гордый on 08-08-2011, 22:53 | ||
![]() |
Posted by: valja on 08-08-2011, 23:01 | ||
![]() |
Posted by: Гордый on 08-08-2011, 23:09 | ||||
![]() |
Posted by: valja on 08-08-2011, 23:09 | ||
|
Posted by: valja on 08-08-2011, 23:11 | ||
![]() |
Posted by: Гордый on 08-08-2011, 23:14 | ||||
![]() |
Posted by: valja on 09-08-2011, 21:39 | ||
![]() На контольной машине без поддержки Азии можно удалять или устанавливать фонты, все ОК. После установки поддержки тоже все ОК. Но достаточно теперь удалить скорее всего любой (пробовал с тремя фонтами, отстутствующими на "больно" машине) фонт, как сразу проявляется болезнь. Восстановить никак - реинсталляция удаленного фонта и/или поддержки Азии не помогают - только восстановление с бэкапа. Эта поддержка устанавливает (кроме прочего) в ветке [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont] кроме значения "0"="Lucida Console" еще и на (Китайский?) MS Gothic. Кроме того, создается ветка [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink], где Lucida Sans Unicode, Tahoma, Microsoft Sans Serif повязаны с кучей Готиков. Похоже, что ноги растут откуда то отсюда (на выходе вместо "Terminal" появляется "MS Gothic"(?). Удаление этих веток ничего не дает, только портит китайские иероглифы в Осле ![]() Грустно это ![]() PS Достаточно установить поддержку East Asian Languages. Дальше без разницы, снять ее сразу или оставить - удаление любого фонта сразу приводит к данной проблеме. |
Posted by: Гордый on 09-08-2011, 22:05 | ||
![]() |
Posted by: valja on 09-08-2011, 22:13 | ||||
![]() ![]() |
Posted by: Brait on 10-08-2011, 02:46 | ||
|
Posted by: valja on 10-08-2011, 08:29 | ||
Возможно, попробую покопаться в реестре, записывая ветки на разных стадиях "заболевания" и потом сравнивая, что изменилось. 1. Чистая машина с бекапа 2. После установки азиатской поддержки 3. После снятия азиатской поддержки 4. После удаления любого фонта (когда болезнь проявляется) Сравнение двух последних вариантов должно вроде бы выявить, где бяка. Тут есть, правда, два смущающих обстоятельства. Реестр больно велик да и изменения явно будет много ![]() |
Posted by: FiL on 10-08-2011, 21:05 |
filemon и regmon тебе в помощь. |
Posted by: valja on 10-08-2011, 22:15 | ||
![]() ![]() Оказалось, что Виндовоз при удалении первого фонта (после "удаления" азиатской поддержки), восстанавливал в реестре полтора десятка азиатских и связанных с ними фонтов ("MS-DOS CP 437", "MS-DOS CP 437", хитрый "MS Gothic", который и вылазил на экран, "SimHei", SimSun" итд). Часть не хотела удаляться, пока не снес еще кой чего и удалил их из реестра, делая попутно рестарты итд. Но в результате плучил то что хотел, мой фонт вернулся ![]() ![]() Спасибо всем участникам ![]() |
Posted by: Set on 11-08-2011, 02:53 | ||
|