Питер Нортон - Полное руководство по Microsoft Windows XP
Существуют и другие проблемы приложений. Вы когда-нибудь замечали, сколько приложений пытаются изменить файл AUTOEXEC.BAT? К сожалению, если приложение на самом деле модифицирует AUTOEXEC.BAT, необходимые ему настройки не действуют в Windows XP. Путь следует задавать в разделе Системные переменные (System Environment Variables) диалогового окна Свойства системы (System Properties) – его можно вызвать, щелкнув правой кнопкой мыши по ярлыку Мой компьютер и выбрав в контекстном меню команду Свойства. Однако даже перехват установок и их ручная настройка способны вызвать проблемы. Если вы позволите каждому приложению устанавливать свои порядки, путь каждого из них будет длиной в милю. Многие приложения прекрасно запускаются и без записи пути. Тем не менее в приложении вероятен сбой по двум причинам.
Обычно, если приложение настраивает AUTOEXEC.BAT, оно является либо приложением MS DOS, либо приложением Windows 3.1. В подобных случаях при загрузке приложения Windows XP запускает AUTOEXEC.BAT как часть эмуляции сеанса MS DOS и добавляет специальную информацию о пути в строку пути этого сеанса. Вы можете настроить систему таким образом, чтобы она воспринимала отдельные пути, связанные с клавишами быстрого доступа. Windows XP может активизировать командный файл до запуска приложения, чтобы настройки MS DOS вступили в действие раньше.
С первой проблемной областью я столкнулся по чистой случайности – при добавлении файла, ассоциируемого с необходимым приложением, которое я инсталлировал. Тем не менее, когда я пытался запустить файл данных, на экране появлялось сообщение о том, что приложение не может найти его. Приложение прекрасно запускалось, но не загружало файл данных. Спустя несколько часов, проведенных в поисках неполадок, я обнаружил, что могу решить проблему, вписав в путь местоположение приложения.
В некоторых приложениях, например CA-Visual Objects, происходит серьезный сбой, если вы не добавите их в строку пути. Обычно они выдают какое-нибудь неопределенное сообщение об ошибке и завершают работу прежде, чем вы успеете исправить эту ошибку, либо приложение загружается, а затем отказывается запускать любые дополнения, так как не может найти их. Симптомом данной проблемы может служить ситуация, когда приложение не может сохранить никакие задаваемые настройки или опции. Если у вас возникли сомнения, добавьте приложение в строку пути, чтобы проверить, будет ли решена проблема.
Еще одной проблемной областью являются файлы совместного доступа (такие, как DLL). В действительности DLL могут не содержать поврежденных данных и прекрасно работать с другими приложениями. Тем не менее некоторым приложениям требуется более старая версия библиотечных файлов DLL, поскольку они применяют недокументированную функцию данной DLL или с выгодой используют ее ошибку. Иногда необходимо сохранить старую версию DLL на диске, чтобы обеспечить поддержку определенного приложения.
Однако что происходит, если одному приложению необходима новая версия DLL, а другому – старая? В подобном случае вы должны решить, какое из этих приложений оставить. Я отношусь к подобным ситуациям как к предлогу для апгрейда программного обеспечения. Обычно нет смысла сохранять старое приложение, если оно отказывается работать с новыми. В сущности, несовместимость такого типа обычно означает, что пришло время заменить старое приложение новой версией....Рекомендация
Некоторые приложения ищут необходимую библиотеку DLL сначала в своем корневом каталоге, а потом в системном каталоге Windows XP. Если у вас есть приложение, для запуска которого необходима старая DLL, поместите ее в корневой каталог программы. Проблема данного подхода состоит в том, что Windows может загрузить в память только одну копию DLL. Это значит, что после работы в старом приложении вам придется перезапустить машину, чтобы стереть DLL из памяти.
С одним приложением, установленным на моей машине, произошла странная история. Это была коммуникационная программа, но, я думаю, подобное могло случиться с любым приложением. Каждый раз, когда я делал попытку открыть приложение, оно появлялось на экране, и на этом все заканчивалось. Что бы я ни делал, как только открывалось основное окно приложения, машина зависала, и мне приходилось ее перезагружать. Как выяснилось, сбой произошел после того, как я снизил экранное разрешение, чтобы сделать несколько скриншотов для данной книги. Вот еще один пример неполадки, которая возникла из-за неправильной настройки среды.
Из всего вышесказанного можно сделать вывод, что причина сбоя не всегда очевидна. Обычно приходится потратить некоторое время, чтобы обнаружить возможные истоки проблемы. Некоторые из них могут привести вас в такие области, с которыми, по вашему мнению, ничего не могло произойти. Подобные проблемы можно решить еще одним способом: нажать комбинацию клавиш Ctrl+Alt+Delete, выбрать Диспетчер задач (Task Manager) и, выделив неисправную программу из списка запущенных приложений, нажать кнопку Снять задачу (End Task).
Проблемы, связанные с памятью
Существует довольно большое количество проблем, связанных с памятью, и они делятся на несколько категорий. В следующем списке представлены различные проблемы памяти, с которыми вы можете столкнуться при работе с Windows XP. Просмотрите список и сравните указанные симптомы с вашей проблемой:
• утечки памяти (Memory Leaks). Многие приложения Windows не в состоянии как следует управлять памятью. Они используют большой объем памяти Windows и не полностью освобождают ее при завершении своей работы. Результатом является постепенная потеря емкости памяти, которую вы можете отследить при помощи поля Память (Memory) диалогового окна помощи (Help About) приложения. Вы также заметите, что остальные приложения начинают функционировать медленнее спустя некоторое время, когда система начинает использовать значительно больший по объему файл подкачки (страничный файл), возмещая потерю памяти. Если у вас есть приложение, из-за которого постоянно происходит потеря памяти, лучше запустить его один раз и оставить открытым до тех пор, пока вы в нем нуждаетесь. В подобном случае потери происходят постепенно, если вы не слишком часто открываете и закрываете такое приложение. В конце концов вам придется перезагрузить машину (произвести так называемый холодный перезапуск, при котором сначала отключают питание, а затем снова включают).
...Примечание
Специалисты Microsoft работают над решением проблемы утечки памяти. Система. NET Framework помогает устранить утечку путем обеспечения централизованного метода управления памятью. Управляет памятью не столько программист, сколько. NET Framework. Вы увидите приложения, использующие. NET Framework, сразу же после выпуска Windows XP. Однако вначале разработчики будут создавать специализированные программы, применяющие эту технологию. В конце концов, у каждого в системе будут установлены приложения. NET. Учитывая продолжительность существования старых приложений Windows 3.х, я не сомневаюсь, что вы еще долго будете встречать приложения, вызывающие утечку памяти.
Альтернативным подходом является запись данных в консоли Производительность (Performance console) – см. раздел «Проверка быстродействия» главы 5, а также вкладку Быстродействие (Performance) в окне свойств Диспетчера задач, которая отображает графическую картину использования памяти, хотя изменения памяти могут быть постепенными;
• много излишеств. Некоторые типы проблем памяти возникают из-за наличия множества лишних функций. Вы обнаружите, что Microsoft Access или другое большое приложение работают очень медленно, или даже общие нарушения защиты (General Protection Faults – GPFs) возникают более часто после того, как вы добавили в систему заставку или другой элемент оформления. Пользователи думают, что у утилит различные требования к памяти, но это не всегда так. Утилита обычно выполняет меньший набор задач, чем полнофункциональное приложение. Однако необходимо иметь в виду, что по причине ограничения в задаче оно обычно ограничено в требованиях к памяти. Утилиты MS DOS имели небольшой размер, чтобы соответствовать малому объему памяти. У разработчиков утилит Windows меньше причин создавать небольшие приложения, так как корпорация Microsoft сделала управление памятью Windows более совершенным. Кроме того, теперь машины имеют намного больше памяти;
• повреждение пространства системного ядра Windows. Маловероятно, что разработчики прилагали настолько мало усилий для тестирования своих продуктов, чтобы такая проблема осталась незамеченной. Обычно имеет место следующая ситуация: сбившийся указатель приложения начинает переписывать область системной памяти Windows. Как правило, Windows XP обнаруживает проблему и выводит на экран соответствующее предупреждение. На самом деле я никогда не сталкивался с данной проблемой, однако некоторые пользователи сообщали об этом. Windows XP автоматически завершает такое приложение. Иногда система не обнаруживает проблему до тех пор, пока не становится поздно: происходит утечка, и в этом состоянии она не способна изменить ситуацию, а затем просто «зависает». В подобном случае лучше всего обратиться к разработчику и узнать, можно ли исправить данную неполадку;