Pages: (4) [1] 2 3 4  ( Show unread post )

> Проблема с фонтами в XP
 valja Member is Offline
 Posted: 30-07-2011, 18:44 (post 1, #1026071)

Advanced

Group: Members
Posts: 340
Warn:0%-----
Имеется старая 16-бит Win программа, часть выводов в чисто текстовое окно. Установок фонтов у программы нет, используется системный фонт. На всех машинах, кроме одной, выход совершенно нормальный:

user posted image

На одной из машин с какого то момента фонт совсем другой (причем в других программах аномалий не замечено):

user posted image

Кто нибудь имеет идеи, где копать? Или может опознать, что это за фонт (тогда можно порыться в реестре, где он вылазит и как с ним бороться). Ближайший фонт, что нашелся в системе, это MS Gothic, однако буквы здесь заметно уже:

user posted image

PM Email Poster Users Website
Top Bottom
 Set Member is Offline
 Posted: 31-07-2011, 02:02 (post 2, #1026082)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
Правый клик на иконку в левом верхнем углу окна, там в меню настройки для фонтов.
PM
Top Bottom
 valja Member is Offline
 Posted: 31-07-2011, 09:17 (post 3, #1026086)

Advanced

Group: Members
Posts: 340
Warn:0%-----
QUOTE (Set @ 31-07-2011, 02:02)
Правый клик на иконку в левом верхнем углу окна, там в меню настройки для фонтов.
Увы, там без разницы, правый или левый, открывается маленькое стандартное окошко:

Restore
Move
Size
Minimize
Maksimize
Close
PM Email Poster Users Website
Top Bottom
 Set Member is Offline
 Posted: 01-08-2011, 02:38 (post 4, #1026113)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
PM
Top Bottom
 valja Member is Offline
 Posted: 01-08-2011, 20:09 (post 5, #1026150)

Advanced

Group: Members
Posts: 340
Warn:0%-----
QUOTE (Set @ 01-08-2011, 02:38)
Возможно поможет...
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/
Увы...

По первой ссылке: Прокрутил весь "Advanced" tab, все как и на других машинах, т.е. окошко фонта либо неактивно, либо Tahoma.

По второй ссылке: Все содержимое ...\FontSubstitutes во всех машинах точно такое же, а конкретно указанные фонты

MS Shell Dlg REG_SZ Microsoft Sans Serif
MS Shell Dlg2 REG_SZ Tahoma

Готики нигде не видно.

Попутно обнаружил еще оду деталь. У программы есть и возможность вывода экрана прямо на принтер (я этим раньше никогда не пользовался, а выводил тексты или графику, соответственно, в .txt или .bmp файлы). При выводе на принтер открывается стандартное окошко "Print". И тут при печати фонт нормальный, как на первом рисунке. То есть, эта дурацкая подмена фонта происходит только при выводе на экран. И что самое странное, на других программах я подобной замены (пока) не заметил.


PM Email Poster Users Website
Top Bottom
 Set Member is Offline
 Posted: 02-08-2011, 02:11 (post 6, #1026172)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
На всех скриншотах определённо не Microsoft Sans Serif или Tahoma, значит используется не системный фонт. Я бы переставил прогу с нуля, удалив её конфигурационные файлы и записи в реестре.
PM
Top Bottom
 Brait Member is Offline
 Posted: 02-08-2011, 06:11 (post 7, #1026177)

Ответственный за БД
Group: Roots
Group: Roots
Posts: 3779
QUOTE (valja @ 02-08-2011, 03:09)
По второй ссылке: Все содержимое ...\FontSubstitutes во всех машинах точно такое же, а конкретно указанные фонты
Тогда заодно проверьте "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Fonts" и "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\FontMapper", может там где-то что-то в щелочку завалилось...
PM
Top Bottom
 valja Member is Offline
 Posted: 02-08-2011, 19:13 (post 8, #1026216)

Advanced

Group: Members
Posts: 340
Warn:0%-----
QUOTE (Set @ 02-08-2011, 02:11)
На всех скриншотах определённо не Microsoft Sans Serif или Tahoma, значит используется не системный фонт. Я бы переставил прогу с нуля, удалив её конфигурационные файлы и записи в реестре.
Там нечего переставлять. Прога очень древняя - исталлятора нету и в реестр ничего не пишется. Просто прога (и сопутствующие файлы) распаковывается в какой либо катлог, еще желателно в энвиронменте создать переменую TZ (для указания часового пояса). Есть один конфигурационный файл, но он не менялся уже года два, да и нет там ничего про фонты.
PM Email Poster Users Website
Top Bottom
 valja Member is Offline
 Posted: 02-08-2011, 20:24 (post 9, #1026234)

Advanced

Group: Members
Posts: 340
Warn:0%-----
QUOTE (Brait @ 02-08-2011, 06:11)
Тогда заодно проверьте "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Fonts" и "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\FontMapper", может там где-то что-то в щелочку завалилось...
Вся ветка "FontMapper" идентична ветке в других машинах.

В ветке "Fonts" туева хуча фонтов, но мой глаз ничего подозрительного не заметил.

Поскольку "неправильный" фонт какой то Gothic, то просканирвал реестр, вдруг где то лишняя запись, указующая на него, но все записи, содержащие Gothic идентичны записям в нормальной машине. Аналогично и с Courier, который, по идее, должен быть на выходе.

И с юзером это не связано, бяка вылазит при любом юзере.
PM Email Poster Users Website
Top Bottom
 Set Member is Offline
 Posted: 03-08-2011, 01:24 (post 10, #1026258)

Visionary

Group: Members
Posts: 5181
Warn:0%-----
Если это Astrolog 5.41G, то в его сорсах как раз по фонтам очень даже есть кое чего, включая описание какие и где ему нужны, какие-то параметры для них... лень там копаться. :)
PM
Top Bottom
 valja Member is Offline
 Posted: 03-08-2011, 13:15 (post 11, #1026284)

Advanced

Group: Members
Posts: 340
Warn:0%-----
QUOTE (Set @ 03-08-2011, 01:24)
Если это Astrolog 5.41G, то в его сорсах как раз по фонтам очень даже есть кое чего, включая описание какие и где ему нужны, какие-то параметры для них... лень там копаться. :)
Вообще говоря, Astrolog играется с фонтами, но только в графике (там даже есть свой "фонт" для глифов). Т.е. смотреть надо только связанную с Windows часть кода. И там таки есть определение фонта для текста:
CODE
    /* Set up a text chart. */
    SetWindowOrg(wi.hdc, 0, 0);
    SetWindowExt(wi.hdc, wi.xClient, wi.yClient);
    SetBkMode(wi.hdc, TRANSPARENT);
    if (wi.hdcPrint == hdcNil)
      TextClearScreen();
    i = gs.nScale/100;
    wi.xChar = i < 2 ? 6 : (i < 3 ? 8 : (i < 4 ? 10 : 12));
    wi.yChar = i < 2 ? 8 : (i < 3 ? 12 : (i < 4 ? 18 : 16));
    wi.hfont = CreateFont(wi.yChar /*nHeight*/, wi.xChar /*nWidth*/,
      0 /*nEscapement*/, 0 /*nOrientation*/, FW_DONTCARE,
      0 /*fbItalic*/, 0 /*fbUnderline*/, 0 /*fbStrikeOut*/,
      DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_DEFAULT_PRECIS,
      DRAFT_QUALITY, FIXED_PITCH | FF_DONTCARE, "Terminal");
Тут видно, что для текста используется "Terminal". На всех компах так и есть. Кроме этого проблемного, где он на экране заменяется другим (хотя при печати используется "Terminal").

То есть, теперь мне нужно искать, кто и где заменяет "Terminal" другим фонтом.
PM Email Poster Users Website
Top Bottom
 valja Member is Offline
 Posted: 03-08-2011, 22:04 (post 12, #1026327)

Advanced

Group: Members
Posts: 340
Warn:0%-----
Интересный фонт этот "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 (там он вполне имеется в списке фонтов, в одном экземпляре)? Куда копать дальше?

В общем, крыша едет не спеша...

PM Email Poster Users Website
Top Bottom
 mts Member is Offline
 Posted: 03-08-2011, 22:21 (post 13, #1026329)

штатный нетлабовский телепат

Group: News makers
Posts: 4834
Warn:0%-----
Он же не ТrueType, вот Word и WordPad его не видят.
PM Email Poster
Top Bottom
 FiL Member is Offline
 Posted: 03-08-2011, 23:42 (post 14, #1026340)

Сварливый Мозг Клуба
Group: Roots
Group: Roots
Posts: 22883
a номера - это кодовые таблицы. русские там, латинские, прочие ивриты...
PM Email Poster ICQ AOL MSN
Top Bottom
 valja Member is Offline
 Posted: 04-08-2011, 09:36 (post 15, #1026352)

Advanced

Group: Members
Posts: 340
Warn:0%-----
Пока вижу две возможные причины:
1. На "больной" машине отсутсвует именно нужный "Terminal" и виндовоз по своей логике подбирает другой. Вечером сравню наличие данных фонтов с другими машинами. Но скорее всего фонт имеется.
2. Кауая то бяка переадресует "Terminal" на готику. Где копать, пока неясно.

This post has been edited by valja on 04-08-2011, 09:36
PM Email Poster Users Website
Top Bottom
Topic Options Pages: (4) [1] 2 3 4