ПК-ностальгия
HOME
Железо
Программы
Оборудование
Статьи и публикации
Фототаблица
Ссылки
Почта
Гостевая
ПОИСК
Новости Яndex
О сайте

Этот сайт предназначен, прежде всего, людям, ностальгирующим по ушедшим РУССКОМУ СЛОВУ, Windows 3.1, ФОТОНУ, процессорам 486SX и иже с ними.
Конечно, времена должны идти вперед, но почему они обязательно должны уходить?

StuhlbergR 2007 ©
Попурри на темы Windows
(Продолжение)



Быстродействие или совместимость?

Одно из наиболее существенных преимуществ Windows новой версии - заметное увеличение быстродействия. Разработчикам фирмы Microsoft удалось достичь этого во многом за счет совершенствования алгоритмов работы системы, и при этом немалые трудности были вызваны необходимостью сохранять совместимость с существующими пакетами.

Предыдущая версия Windows, как известно, не была свободна от недостатков, однако настоящим бедствием оказались не столько они, сколько то обстоятельство, что для исправления ошибок и повышения производительности системы в ряде программных продуктов использовались недокументированные функции. И, естественно, в самых мощных и популярных из тех пакетов, которые были созданы за время, прошедшее с момента появления Windows 3.0, их больше всего. Сказанное относится к таким пакетам, как Norton Desktop 2.0 и NewWave 4.0, Microsoft PowerPoint 3.0, Lotus Ami Pro 2.0, Adobe Illustrator 4.0 и, увы, ко многим другим.

В версии 3.1 необходимость в подобных ухищрениях отпадает, но старые программы, рассчитанные на прежние неблагоприятные условия, не всегда могут приспособиться к новым благоприятным. Поэтому для того, чтобы с названными программами все же можно было работать, Windows 3.1 предусматривает специальные "биты совместимости" - набор флажков, установка которых заставляет систему использовать при запуске определенных программ прежний алгоритм.

Итак, если какая-либо программа безукоризненно работает с Windows 3.0, но "бастует" под версией 3.1, придется повозиться с "битами совместимости". И, хотя специалисты фирмы Microsoft рекомендуют сначала изучить содержимое файла APPS.HLP, которое в основном сводится к советам позвонить по такому-то телефону и получить консультацию у соответствующих специалистов, мы попробуем разобраться в этом вопросе самостоятельно.

Откройте окно Notepad и загрузите файл WIN.INI. В нем имеется секция [Compatibility] (совместимость), состоящая из двух десятков строк вида

Excel=0x1000

В левой части выражения задано имя программного модуля (исполняемого файла), при запуске которого поведение Windows 3.1 должно быть модифицировано, а в правой - шестнадцатиричное число, которое является условным номером изменяемого алгоритма работы системы. Например, Windows 3.1 использует названия шрифтов MS Serif и MS Sans Serif вместо Tms Rmm и Helv, поэтому Excel не найдет указанные шрифты. Установка "бита совместимости" под номером 0х1000 приведет к замене новых имен на старые, но только на время работы с Excel. Аналогичное восстановление алгоритмов может потребоваться и для других программ. Причем, если для нормальной работы одного модуля необходимо установить несколько битов, соответствующие значения можно суммировать:

WPEINFIL=0x0006

Это выражение приводит к установке битов 0002 и 0004 при запуске модуля WPWINFIL пакета Word Perfect.

Соответствие между номерами "битов совместимости" и алгоритмами не описано в печатной документации к системе, но по другим публикациям представление о нем вполне можно составить.

Бит 0001 относится к одной из старых ошибок в библиотеке поддержки инсталляции пакета Microsoft C 6.x. Эта библиотека использовалась при компиляции программы установки пакетов Microsoft Publisher, Money, Works и некоторых других. Включение в WIN.INI выражения NOTSHELL=0x1000 восстанавливает нормальную инсталляцию этих программ в Windows 3.1.

Установка бита 0002 может помочь программам, у которых возникают проблемы при одновременном выводе на печать текста и графики. К ним относятся, например, модули WPWINFIL пакета WordPerfect и REM пакета Freelance.

Бит 0004 задает горизонтальную (landscape) печать графики без разбивки на части; этот бит также требуется для нормальной работы модуля WPWINFIL пакета WordPerfect.

Бит 0008 необходим модулям, которые не могут правильно взаимодействовать с другими программами, создающими окна, постоянно находящиеся на переднем плане. Например, запуск нескольких программ из cc:Mail при отключенном флажке 0008 приведет к появлению сообщения General Protection Fault.

Бит 0010 заставляет Windows 3.1 передавать программам список шрифтов True Type? помечая их как уже загруженные в текущий принтер. Хотя на самом деле шрифты не загружены, пакет Ami Pro начинает работать правильно.

Бит 0020 указывает системе на необходимость печатать графику в несколько полос. Windows 3.1 пытается оптимизировать этот процесс, создавая при наличии достаточной памяти полный образ страницы, включающий и текст, и графику. Для нормальной работы модуля REM пакета Freelance необходимо восстановить прежний алгоритм.

Бит 0040 управляет посылкой сообщений о необходимости перерисовать определенное окно. Windows 3.0 при создании такого окна посылала такие сообщения всем активным в этот момент программам, а версия 3.1 сначала выясняет, есть ли в этом необходимость. Однако многие программы использовали эти сообщения и в других целях, поэтому для восстановления правильной работы Pixe, Object Vision и модуля CP пакета Criket Presents необходимы соответствующие строки в WIN.INI.

Бит 0080 напоминает об одном недостатке версии 3.0: строка, введенная пользователем в диалоговом окне File Open, при передаче в программу переводится в верхний регистр. Программа JustWrite исправляла этот недостаток самостоятельно, поэтому при работе с версией 3.1 расширение имени файла воспринимается неправильно.

Бит 0100 управляет выделением 4 байт памяти для некоей структуры, отсутствующей в версии 3.1. Назначение этой структуры не поясняется, но она крайне необходима программе Aporia и модулям TME пакета Multimedia Encyclopedia и NETSET2 из ExplorerNet.

Бит 0200 относится к появившейся версии 3.1 неоднозначности: для вывода на экран символов шрифтов TryeType может применяться как масштабирование, так и готовые растровые представления соответствующих символов (меньшего размера). Установка этого бита необходима для модулей VB пакета Visual Basic и WIN2WRS пакета Word Perfect.

Бит 0800 связан с еще одной ошибкой версии 3.0 - некорректной работой с COM2 - и необходим для правильной работы программ Packrat и Microcourier.

Бит 1000 упомянутый в примере с Excel, предназначен для тех программ, которые производят поиск шрифтов Windows по их названиям. Поскольку Helv и Tms Rmm теперь названы иначе, программы Excel, Guide, Spinmaker Plus, модули WIN2WRS пакета WordPerfect и MILESV3 пакета Milestones Etc. не смогут работать с этими шрифтами без установки указанного флажка.

Бит 2000 позволяет некоторым программам считать шрифты True Type масштабируемыми даже в том случае, когда имеющийся принтер не поддерживает эту возможность. Его установка требуется для пакетов Charisma, PageMaker 4.0, Draw Microfax Designer, JustWrite, AccPac (модуль WINSIM), Persuasion (PR2) Ascend (PLANNER).

Бит 4000 необходим модулям WAGL и WAGLR пакета Ingres и модулю _BNOTES пакета Lotus Notes версий 2.0 и 2.1, а также другим программам, которые используют в диалоговых окнах "падающие" (drop-down) списки. Установка этого бита гарантирует, что такие списки будут правильно перекрывать другие окна программы.

Бит 8000 заставляет Windows печатать шрифты TrueType с использованием графического режима принтера, восстанавливая нормальную работу модуля REM пакета Freelance.

Бит 10000 - память об очередной ошибке версии 3.0. Функция, посылающая программам сообщения о необходимости перерисовать часть экрана, иногда неверно сообщала координаты нужной области. Некоторые программы, однако, способны извлекать из них правильную информацию. Пример - модуль ED пакета Microsoft Draw.

Установка бита 20000 модифицирует сообщение, которое система посылает программе после того, как пользователь перемещает одно из ее окно. В версии 3.0 необходимо было пересчитать размер окна, несмотря на то, что он не изменяется при перемещении. Новая версия не требует этого, что немного ускоряет обновление экрана, но вводит в заблуждение модуль _BNOTES пакета Lotus Notes.

Бит 40000 влияет на то, каким образом обрабатывается двойное нажатие кнопки "мыши" на пиктограмме системного меню (левый верхний угол окна). Программа JustWrite особым образом реагирует на это действие в том случае, когда максимизировано одно из его многочисленных дочерних окон. Соответствующая строка в WIN.INI сохраняет это свойство в версии 3.1.

Бит 80000 изменяет способ вычисления ширины символа для шрифтов PostScript. Его установка сохранит внешний вид бланков TurboTax.

Описанные выше "биты совместимости" не следует устанавливать "на всякий случай". Они могут дать ключ к решению проблемы лишь тогда, когда программа нормально работает с Windows 3.0 и имеет определенные систематические сбои при работе с версией 3.1. Однако если вы разработали программу самостоятельно, быстрая адаптация ее к новой версии с помощью описанного механизма не составит труда.

Последнее замечание касается версий программных продуктов, рассчитанных на работу с Windows 3.1. Хотя, как заявляют представители Microsoft, новые пакеты будут при инсталляции удалять соответствующую строку из секции [Compatibility], лучше все-таки позаботиться на всякий случай об этом самостоятельно.


Добиваемся правильного подчеркивания

Новая версия Windows предоставляет пользователю широкие возможности управления печатью. Существенно переработанные драйверы принтеров поддерживают шрифты TrueType и другие новшества. Но один деликатный момент, похоже, опять выпал из поля зрения разработчиков - при использовании принтеров LaserJet по-прежнему возникают проблемы с подчеркиванием текста. Поясним, что предлагает система и чем это плохо.

Обычно различают два вида подчеркивания текста при печати. Первый можно встретить на конверте - это линии, проведенные от заголовков "Куда" и "Кому". Его называют базовой линией (baseline ruler или underscore). На клавиатуре ПК ей соответствует особый символ подчеркивания (клавиша "минус" в верхнем регистре).

Второй вид - это собственно подчеркивание (underline), употребляемое для выделения текста. В большинстве текстовых процессоров Windows оно выполняется с помощью Ctrl-U или пиктограммы Underline.

Уже самые первые модели принтеров фирмы Hewlett-Packard выпускались со встроенной поддержкой обоих варинтов. В документации первый из них называется фиксированным подчеркиванием (fixed underline), поскольку располагается на постоянном удалении от основной линии, на которой располагаются символы. Второй назван плавающим подчеркиванием (floating underline), так как расстояние может меняться в зависимости от наличия в строке символов с "хвостиками" - таких, как р или у.

Управлять подчеркиванием в тестовых процессорах DOS, которые обычно позволяют редактировать графическое представление символов и изменять таблицы драйверов. Но Windows, судя по всему, не отличает один вид подчеркивания от другого и бестрепетно "подрезает ноги" буквам, выступающим за основную линию.

Однако не стоит отчаиваться. Оказывается, правильного подчеркивания в Windows можно добиться с помощью несложного, но очень радивального средства - отредактировав драйвер принтера. Например, для популярной модели HP LaserJet III последовательность действий такова.

Для начала найдите файл HPPCL5A.DRV в каталоге Windows\System. Скопируйте его в файл HPPCL5A.BIN и запустите Windows Write. При загрузке файла с расширением .BIN программа спрашивает, нужно ли выполнять преобразование в формат Write. Выберите ответ "No Conversion". После этого в меню Find укажите для поиска подстроку &d0D. Указанные символы нужно заменить на последовательность &d3D (в файле эта подстрока встречается один раз). Сохранив результат, следует переименовать файл HPPCL5A.DRV в HPPCL5A.OLD - он станет резервной копией, а затем HPPCL5A.BIN - в HPPCL5A.DRV. Теперь можете напечатать что-нибудь вроде "wysiwyg", чтобы убедиться, что линия подчеркивания больше не задевает букв. Если возникнут проблемы, в любой момент можно восстановить исходный вариант. Перезапускать Windows после указанных изменений не обязательно, но вносить их во время печати не рекомендуется.

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

*** "Попурри на темы Windows" Б.Ливингстон, С.Гибсон, К.Нельсон, А.Трубицын
Статья опубликована в журнале "Мир ПК" №6 1992 год

[1]  [2]  [3]

Раздел ПРОГРАММЫ

Большинство предоставленного здесь материала является цитированием со старых номеров компьютерных журналов, таких, как "Мир ПК" или "Компьютерра". К сожалению, все мои попытки связаться с этими изданиями по поводу вопроса о цитировании были безуспешны. Издания упорно хранили молчание. Что я разрешил себе расценивать как знак согласия, указывая, тем не менее, повсюду как выходные данные издания (с работающей ссылкой на Интернет-представительство), так и автора публикации. Тем более, что, в силу срока давности этих публикаций, вряд ли материал можно рассматривать как коммерческий или рекламный, пусть даже названия фирм здесь и присутствуют (уж без этого никуда). Ежели появятся какие претензии по оному поводу, прошу издания связаться со мной

Райво Штулберг


Rambler's Top100

Рейтинг@Mail.ru Сайт мышонка Портал HotINDEX: знакомства, товары, хостинг, создание сайта, Интернет-магазин, развлечения, анекдоты, юмор, эротика, погода, курсы валют и многое другое! Сайт Татьяны Полукаровой Яндекс цитирования Каталог Ресурсов Интернет
Белый каталог сайтов Литературное ДАО

Автор обращает внимание на то, что никакой представленный здесь материал не служит рекламным целям ни фирм,ни их продкутам, а носит сугубо информационно-образовательный характер

Hosted by uCoz