Просмотров: 3012 шт.
Совместимость существующих приложений с операционной системой Microsoft Windows Vista (и выходящей в этом году операционной системой Windows 7, построенной на ядре Windows Vista) является одной из основных проблем, с которой могут столкнуться пользователи, переходящие на новую версию операционной системы.
*****
Несмотря на усилия, прилагаемые компанией Microsoft, некоторые производители программного обеспечения продолжают использовать устаревшие функции операционной системы, некорректно выполняют операции по проверке версий ОС (более 50% всех отказов в запуске приложений), не следуют рекомендациям по работе с файловой системой и, часто, не руководствуются советами по обеспечению корректной работы приложений в новых версиях системы. Все это приводит к тому, что в операционной системе Microsoft Windows Vista есть более 5600 «системных заплаток» (shims) для обеспечения корректной работы приложений различных производителей – от утилит китайских производителей до крупных продуктов известных фирм. В Windows 7 число «системных заплаток» увеличилось – в бета-версии новой операционной системы их насчитывается более 5700!
Можно выделить три основных подхода к обеспечению совместимости приложений – использование упомянутых выше «системных заплаток», запуск приложения в виртуальной среде (терминальные сервисы или использование Microsoft Application Virtualization) и, изменение кода приложения таким образом, чтобы оно соответствовало требованиям по корректной работе в операционной системе – для этого служат руководства по сертификации приложений для получения логотипов Works With Windows Vista и Certified for Windows Vista, а также соответствующие тест-кейсы, которые можно найти на сайте http://www.innovateon.com в разделе, посвященном Windows Vista.
Описанные выше ключевые причины несовместимости приложений вынудили компанию Microsoft реализовать на уровне ядра операционной системы специальный механизм, известный под названием Application Compatibility Infrastructure, в задачу которого входит имитация функционирования ОС в режиме совместимости с предыдущими версиями и, в ряде случаев, даже внесение ошибок, на наличие которых завязана функциональность приложений сторонних разработчиков – даже в том случае, когда эти ошибки обнаружены и устранены в текущей версии ОС.
Средства обеспечения совместимости можно условно разделить на три уровня: средства операционной системы, набор бесплатных утилит, «заплатки», создаваемые специалистами Microsoft.
Средства операционной системы
На уровне операционной системы (как Windows Vista, так и Windows 7) существет механизм, позволяющий выполнять приложения в режиме совместимости. В Windows Vista и Windows 7 этот механизм доступен при нажатии правой кнопки «мыши» на названии исполняемого файла, выборе команды «Свойства» и переключении на вкладку «Совместимость» в диалоговой панели «Свойства».
Панель разделена на 3 группы – «Режим совместимости», «Параметры» и «Уровень прав». Опции в группе «Режим совместимости» позволяют запустить приложение в режиме совместимости с одной из следующих версий операционной системы Windows:
Windows 95; Windows 98/Me; Windows NT4 (SP5); Windows 2000; Windows XP (SP2); Windows Server 2003 (SP1)
При выборе режима совместимости для приложения включается набор системных «заплаток», которые эмулируют выбранную версию операцинной системы.
Опции в группе «Параметры» позволяют, не изменяя самой среды выполнения, задать некоторые режимы, которые помогут функционированию приложения – число цветов, разрешение экрана, масштабирование в режиме HiDPI и т.д.
И, наконец, в тех случаях, когда приложению требуется выполнение под учетной записью администратора (либо из-за проверки, встроенной непосредственно в код приложения, либо из-за обращения к административным функциям системы, приложение можно запустить от имени администратора.
Все изменения, внесенные в данной диалоговой панели, хранятся в системном реестре – в ветви HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrent VersionAppCompatFlagsLayers
В приведенном выше примере мы использовали два средства обеспечения совместимости – т.н. «уровень совместимости» - в нашем случае и Windows XP SP2 – и две системные «заплатки» - DisableThemes и RunAsAdmin.
В Windows 7 появился более простой интефейс, позволяющий включать механизмы обеспечения совместимости приложений с текущей версией операционной системы. Данный интерфейс называется Program Compatibility Troubleshooter – он вызывается через Control Panel | Troubleshooting | Programs | Run programs made for previous versions of Windows или из командной строки командой
%systemroot%/system32/msdt.exe –id PCWDiagnostic
При вызове Program Compatibility Troubleshooter мы попадаем в набор экранов, которые позволяют нам либо выбрать приложение из списка, либо указать новое приложение и, ответив на ряд вопросов, попытаться решить проблемы, связанные с совместимостью
Многие проблемы, связанные с совместимостью приложений могут быть решены применением настроек на уровне панели «Совместимость» в Windows Vista или средства Program Compatibility Troubleshooter в Windows 7, но в ряде случаев может потребоваться «тяжелая артилерия».
Автор статьи Алексей Федоров
http://www.ixbt.com
Комментарии:
Авторизуйтесь или зарегистрируйтесь, чтобы иметь возможность комментировать записи!