Windows Vista: Настольная книга по совместимости приложенийИсточник: microsoftcom
На этой странице… Введение ВведениеС выходом Microsoft Windows Vista появляется операционная система нового поколения и платформа разработки приложений, которая будет применяться разработчиками и компаниями во всем мире. Для повышения безопасности и улучшения качества работы пользователей в Windows Vista введено много новых функций и улучшено много существующих функций. Хотя операционная система Windows Vista, в основном, совместима с большинством приложений для Microsoft Windows XP и Microsoft Windows Server 2003 с различными пакетами обновлений, существуют и некоторые несовместимые моменты, неизбежно вытекающие из новых возможностей, более серьезной системы безопасности и высокой надежности. В целом уровень совместимости Windows Vista очень высок, и корпорация Майкрософт постоянно работает над реализацией самых лучших решений для обеспечения совместимости существующих приложений с Windows Vista. С данным документом в первую очередь должны ознакомиться разработчики, желающие знать, как проверять совместимость своих приложений. В нем также приведен обзор некоторых известных проблем несовместимости приложений с Windows Vista и ссылки на подробные статьи и другие материалы для разработчиков. Существует несколько новых функций, которые позволяют разработчикам решать проблемы ненадлежащей работы приложений в Windows:
Как проверить совместимость за тридцать минутВ этом разделе рассказывается о том, как протестировать и оценить совместимость приложения в Windows Vista. Существует два сценария проверки совместимости с Windows Vista. Работа с ОС Windows Vista, установленной самостоятельно
Работа с ОС Windows Vista, установленной поверх ОС Windows XP с пакетом обновления 2
Если оба сценария выполняются нормально и приложение нормально функционирует, это означает, что приложение нормально работает в Windows Vista. Информацию по сертификации приложения можно найти на главной странице Windows Vista. Ссылки
Определение версии операционной системыВажность функции:Высокая Краткое описаниеОС Windows Vista имеет внутренний номер версии 6. При вызове функции GetVersion она выводит этот номер версии.
ПроявленияПроявления результатов изменения номера версии зависят от приложения, например:
Решение проблемыБольшинство приложений нормально работают в Windows Vista, потому что в Windows Vista реализован высокий уровень совместимости с приложениями. Для приложений и программ установки, проверяющих версию ОС, в Windows Vista имеется режим совместимости. Пользователи могут нажать правой кнопкой мыши на ярлык программы или исполняемый файл, и включить режим совместимости с Windows XP SP2 на вкладке Совместимость. В большинстве случаев после этого приложение будет работать так же, как в Windows XP, и никакие изменения не потребуются. Средства решения
Управление учетными записями пользователейВажность функцииВысокая Краткое описаниеОсновополагающий шаг в сторону повышения безопасности Windows - это работа конечного пользователя от имени своей стандартной учетной записи, которая предоставляет ему лишь ограниченные разрешения и права доступа. По умолчанию Windows Vista запускает любое приложение от имени стандартного пользователя, даже если вы входите в систему, как администратор. И наоборот, если пользователь пытается запустить приложение, которое было помечено как требующее разрешений администратора, система попросит его подтвердить это действие. Только приложения, которые выполняются с правами доступа администратора, могут изменять системные и глобальные параметры и правила поведения. Эта функция Windows Vista называется управлением учетной записью пользователя (UAC). Проявления
Средства решенияБыстрое решение для собственных программ установки:
Быстрое решение для приложений, которым требуются права администратора для изменения системы или записи данных в защищенные области:
Проверка совместимости:
Используйте решение на базе возможностей Windows Vista:
Ссылки
Управление учетными записями пользователей - Рекомендации по обновлению приложенийВажность функцииСредняя Краткое описаниеСегодня наблюдается тенденция внедрять функции обновления в само приложение. Цель интеграции функции обновления заключается в том, чтобы обеспечить выполнение клиентом самой последней версии кода разработчика. Было отмечено, что некоторые приложения при выполнении обновления требуют более высокие привилегии, чем привилегии стандартного пользователя. Нередко требуется работать с файлами, записываемыми на каждый индивидуальный компьютер при установке. В модели UAC только администратор в режиме Admin Approval Mode имеет достаточные права для выполнения этих действий. Эвристическое решение обнаружения в Windows Vista Installer правильно определяет блоки обновления большинства приложений и присваивает процессам обновления соответствующие права, что обеспечивает успешное обновление. Однако в некоторых ситуациях не удается успешно выполнять обновление приложения. Например:
ПроявленияФункция обновления приложения не работает. Средства решенияБлоки обновления не обнаруживаются эвристическим решением обнаружения в Windows Vista Installer?
Многофункциональные исполняемые файлыВ Vista нет удобного способа создать многофункциональный исполняемый файл, который будет выполнять обновления, поскольку состояние, в котором запускается исполняемый файл, изменить нельзя. Из этого следует, что придется постоянно запускать исполняемый файл с правами администратора. Вместо этого в приложениях следует использовать для выполнения обновлений один из перечисленных ниже методов.
Ссылки
Защита ресурсов Windows (WRP)Важность функцииВысокая (блокировка установки или запуска приложений) Краткое описаниеЗащита ресурсов Windows (WRP) предназначена для защиты системы Windows в состоянии, доступном только для чтения, чтобы повысить стабильность, надежность и прогнозируемость работы системы. Защита ресурсов охватывает определенные файлы, папки и записи в реестре. Обновления защищенных ресурсов могут выполняться только доверенными установочными средствами ОС, например, службами Windows. Это позволит защитить компоненты и приложения ОС от воздействия других приложений и администраторов. ПроявленияПриложения и администраторы не могут заменять или модифицировать защищенные ресурсы ОС, что приводит к следующим результатам:
Примеры защищенных системных областей:
Решение проблемы
Для известных программ установки ошибки типа Access Denied (отказ в доступе) подавляются при следующих условиях:
Средства решения
СсылкиЗащищенный режим Internet ExplorerВажность функцииВысокая Краткое описаниеВ ОС Windows Vista обозреватель Microsoft Internet Explorer 7 работает в защищенном режиме, позволяющим защитить пользователей от атак за счет значительного ограничения привилегий Internet Explorer. Защищенный режим значительно уменьшает доступные атакующему коду возможности записи, изменения и уничтожения данных на компьютере пользователя и возможности установки вредоносных программ. Он помогает защитить пользователей от несанкционированной установки вредоносных программ. Этот режим устанавливается в Internet Explorer по умолчанию при установке ОС Windows Vista. Проявления
В защищенном режиме используется новый механизм обеспечения целостности, ограничивающий доступ для записи к защищаемым объектам (процессам, файлам и ключам реестра). При работе в защищенном режиме процесс Internet Explorer имеет низкий уровень целостности. Он не может получать доступ для записи к файлам и ключам реестра в профиле пользователя или системных областях. Процессы с низким уровнем целостности могут осуществлять запись только в папки, файлы и ключи реестра, которым присвоена обязательная метка низкого уровня целостности. В результате этого Internet Explorer и его расширения работают в защищенном режиме, поддерживающем запись только в области с низким уровнем целостности, в частности новая папка временных файлов Интернете Temporary Internet Files, папка History (журнал), папка Cookies, папка Favorites (Избранное), а также папка временных файлов Windows Temporary Files. Более того, по умолчанию в Windows Vista процесс защищенного режима работает с низким уровнем целостности, что предотвращает отправку определенных сообщений процессам с более высоким уровнем целостности. Предотвращая несанкционированный доступ к важным областям системы, защищенный режим ограничивает возможный ущерб от взлома процесса Internet Explorer или от вредоносного ПО. Атакующий не может незаметно установить программу, регистрирующую нажатия клавиш, в папку Автозагрузка на компьютере пользователя. Взломанный процесс не может управлять приложениями на компьютере с помощью сообщений Windows. Разумеется, такая защита ограничивает законные возможности внесения изменений в области с высоким уровнем целостности (IL). В связи с этим в защищенном режиме используется архитектура совместимости, уменьшающая влияние на существующие расширения, как показано на следующем рисунке. Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.01(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.01(l=ru-ru,v=MSDN.10).gif"> Рис. 1 Уровень совместимости решает проблемы множества существующих расширений. Он перехватывает попытки записи в ресурсы со средним уровнем целостности, например, в папку Мои документы профиля пользователя или в раздел реестра HKEY_CURRENT_USER. Уровень совместимости использует стандартное средство обеспечения совместимости Windows для автоматического переключения этих операций на области с низким уровнем целостности:
Два процесса-брокера с высоким уровнем привилегий позволяют обозревателю Internet Explorer и его расширениям выполнять операции, для которых нужен высокий уровень прав, с прямого разрешения пользователя. Например, процесс брокера привилегий пользователя (IEUser.exe) включает набор функций, позволяющий пользователю сохранять файлы в другие области, кроме областей с низким уровнем целостности. Брокер привилегий администратора (IEInstal.exe) позволяет о��озревателю Internet Explorer устанавливать элементы управления ActiveX. Средства решенияБыстрое решение:
Проверка совместимости:
Используйте решение на базе возможностей Windows Vista:
Ссылки
Windows Vista 64-bitВажность функцииВысокая Краткое описаниеWindows Vista полностью поддерживает процессоры AMD и Intel на базе 64-разрядной архитектуры. 64-разрядная версия Windows Vista может выполнять все 32-разрядные приложения с помощью эмулятора WOW64. Однако при этом ядро не поддерживает 16-разрядные приложения, 16-разрядные установочные программы и 32-разрядные драйверы режима ядра. Все 64-разрядные драйверы должны иметь цифровую подпись для Windows Vista 64-bit. Неподписанные драйверы не поддерживаются, и их нельзя установить в 64-разрядной версии Windows Vista. Проверка цифровой подписи производится при установке и загрузке драйверов. Проявления
Средства решенияИспользуйте решение на базе возможностей Windows Vista:
Проверка совместимости:
Ссылки
Microsoft Graphical Identification and Authentication (GINA)Важность функцииВысокая (частота: низкая) Краткое описаниеДо появления Windows Vista для входа на сервер или оборудование другого производителя компаниям-разработчикам ПО требовалось заменять библиотеку динамических ссылок GINA в Windows XP. Таким приложениям также приходилось заменять существующий пользовательский интерфейс и реализовать в Windows XP функции смарт-карт и удаленного рабочего стола.
В Windows Vista используется новая модель аутентификации, где LogonUI и WinLogon непосредственно связываются друг с другом. Эта модель обеспечивает простоту, гибкость и масштабируемость, отсутствовавшие в GINA. В отличие от случаев использования модуля GINA, теперь компаниям-разработчикам не нужно заменять пользовательский интерфейс входа в систему, затрачивая на это дополнительные ресурсы. Вместо этого разработчик может создать провайдер учетных данных, подключаемый к LogonUI, который будет описывать пользовательский интерфейс, собирать учетные данные и передавать их WinLogon. Провайдеры учетных данных являются полностью прозрачными для WinLogon. Провайдеры учетных данных не являются взаимоисключающими, т.е. пользователь может установить несколько провайдеров учетных данных и выбрать любой из них для использования. Провайдеры учетных данных могут выбираться пользователем или определяться событиями. В Windows Vista имеется несколько поставщиков учетных данных, которые предназначаются не только для других программ. В комплектации Windows поставляется два стандартных поставщика учетных данных: поставщик учетных данных в виде имени пользователя и пароля и поставщик учетных данных в виде смарт-карт. В дополнение к этому, поставщики учетных данных можно повторно использовать в CredUI. Это тот же самый объект, который собирает и описывает информацию об учетных данных в LogonUI и может использоваться для сбора тех же самых учетных данных в сценариях CredUI. Функция GINA, использовавшаяся в Windows XP и Windows Server 2003, удалена из Windows Vista. Модули приложений GINA не работают в Windows Vista, и их нужно переписывать с использованием новой модели аутентификации Windows Vista. Проявления
Средства решенияИспользуйте решение на базе возможностей Windows Vista:
Ссылки
Изоляция сеанса 0Важность функцииВысокая (частота: низкая) Краткое описаниеВ Windows XP, Windows Server 2003 и в более ранних версиях Windows все службы выполнялись в рабочем сеансе первого пользователя, входящего в систему. Этот сеанс называется сеансом 0. Одновременное выполнение службы и пользовательских приложений в сеансе 0 представляет собой риск с точки зрения безопасности, поскольку службы имеют высокий уровень привилегий и могут быть использованы вредоносными агентами, ищущими способ повысить собственный уровень привилегий. В операционной системе Microsoft Windows Vista этот риск безопасности уменьшается за счет изоляции служб в сеансе 0 и запрета работы пользователя в этом сеансе. В Windows Vista в сеансе 0 работают только системные процессы и службы. Первый пользователь использует сеанс 1, второй пользователь использует сеанс 2 и т.д. Это означает, что службы никогда не работают в том же сеансе, что и приложения пользователя, и поэтому защищены от атак, исходящих из кода приложений. Примеры классов драйверов, на которые влияет эта функция:
Классы приложений, на которых влияет эта функция:
ПроявленияЕсли служба приложения должна вывести пользовательский интерфейс, приложение ожидает выполнения этой задачи, а пользовательский интерфейс не открывается в пользовательском сеансе работы. Средства решенияБыстрое решение:
Проверка совместимости:
Используйте решение на базе возможностей Windows Vista:
Ссылки
Сеть: TCP/IP и платформа фильтрации WindowsВажность функцииВысокая Краткое описаниеВ Windows Vista полностью переписан сетевой стек. Вместо двухуровневой модели стека, используемой в Windows XP или Windows Server 2003 (для поддержки IPv4 и IPv6), в Windows Vista используется новая архитектура с одним транспортным и пакетным уровнем, поддерживающим несколько уровней IP. Также введено несколько новых функций и дополнений к протоколам. Новый стек имеет модульную, гибкую и расширяемую конструкцию. Хотя предприняты все меры для того, чтобы обеспечить совместимость с существующими приложениями, взаимодействующими со стеком на разных уровнях, однако некоторые изменения (в основном представляющие собой побочные эффекты улучшений) могут вызывать проблемы с совместимостью, и разработчикам следует внимательно оценивать воздействие этих изменений на их приложения. Прикладной интерфейс API платформы фильтрации Microsoft Windows (WFP) позволяет разработчикам создавать код, взаимодействующий с фильтрацией, которая происходит на нескольких уровнях в сетевом стеке операционных систем Windows Vista и Microsoft Windows Server ("Longhorn") и в самих операционных системах. WFP также обеспечивает интеграцию и поддержку ряда функций брандмауэра, в том числе связь с аутентификацией и динамическую настройку конфигурации брандмауэра на базе использования приложением API сокета.
В Windows Vista не поддерживаются следующие элементы стека TCP/IP:
Проявления
Средства решенияИспользуйте решение на базе возможностей Windows Vista:
Ссылки
Сеть: API модуля поддержки IP в режиме ядраВажность функцииВысокая Краткое описаниеВ предыдущих версиях Windows у клиентов Winsock не было наборов API для доступа к ядру. В Windows Vista это не так. Также теперь Windows Vista поддержигвает IPv6 по умолчанию. Вместо использования отдельных API для IPv4 и IPv6, новый API модуля поддержки обеспечивает общую функциональность всех новых технологий:
ПроявленияПриложения, использующие старый API модуля поддержки и вызовы недокументированных функций ядра, не будут выполнять эти функции и могут работать нестабильно. Средства решения
Ссылки
Сеть: IPv6Важность функцииВысокая (частота: средняя) Краткое описаниеВ стеке TCP/IP в Windows Vista по умолчанию включен протокол IPv6. Если связь по протоколу IPv6 доступна, она всегда имеет приоритет. Это оказывает следующее воздействие на приложения, использующие стек TCP/IP:
Стек TCP/IP в Windows Vista поддерживает усиленную модель маршрутизации узлов. В этой модели маршрутизация пакетов с компьютеров, имеющих несколько адресов, основывается не только на адресе назначения, но и на исходном адресе пакета. Это изменение необходимо, поскольку в IPv6 каждый компьюте�� получает несколько IP-адресов, и при использовании переходных технологий выглядит с точки зрения маршрутизации, как компьютер с несколькими адресами. Для обеспечения правильной связи в этих сценариях для сетевого стека требуется усиленная модель маршрутизации узлов. ПроявленияПриложения, использующие стек TCP/IP Windows XP или не поддерживающие протокол IPv6 не будут функционировать надлежащим образом и могут привести к сбою или нестабильности системы. Использование усиленной модели маршрутизации узлов для приложений имеет следующие последствия:
Средства решенияПриложения следует модифицировать следующим образом:
СсылкиРиски, связанные с совместимостьюУдаленные компонентыВ Windows Vista отсутствуют следующие компоненты, присутствующие в предыдущих версиях Windows:
Центр справки и поддержкиЦентр справки и поддержки (HelpCtr.exe) представляет собой справочное приложение для Windows XP и Windows Server 2003. Центр справки и поддержки отображает скомпилированные файлы справки с расширением .CHM. Центр справки и поддержки не входит в состав Windows Vista, и его функции не поддерживаются. Скомпилированные файлы справки с расширением .CHM отображаются только в справочном приложении HTML Help, как описано выше. Клиент Assistance PlatformКлиент Assistance Platform (HelpPane.exe) представляет собой новый механизм справки для Windows Vista. Он не поддерживает предыдущие версии Windows. Клиент Assistance Platform необходим для отображения файлов справки для файлов с расширением .H1S. ОЕМ-компании, системные интеграторы и корпоративные пользователи могут настраивать клиент Assistance Platform в Windows Vista по лицензионному соглашению. Другие программы не могут его использовать. Дополнительную информацию по настройке клиента Assistance Platform можно найти в пакете Windows SDK. Модель VDDMМодель VDDM представляет собой абсолютно новую модель драйверов экрана, повышающую стабильность драйверов экрана в Windows. VDDM обеспечивает ряд важных возможностей:
Хотя на большинство приложений для более ранних версий Windows модель VDDM не влияет, существуют некоторые риски:
Ссылки
Безопасная обработка исключенийВ более ранних версиях Windows для проверки параметров использовались функции IsBadReadPtr и IsBadWritePtr. В Windows Vista эти функции запрещены. Приложения, использующие компоненты Windows, применяющие эти функции для проверки параметров, обнаружат, что Windows больше не использует их. Приложения не должны использовать функции Windows для проверки параметров (при обнаружении ошибки null происходит сбой приложения). Безопасная обработка исключений (SEH) связана с использованием флага запрета исполнения. Обработчики исключений проверяются с целью обеспечить пометку page_execute до выдачи исключения, также проверяется правильность кода обработчика и его наличие в таблице SEH. Операции DLLmainПорядок загрузки файлов DLL при создании процессов не является гарантированным, и на него не следует полагаться при выполнении операций. Сложная обработка DllMain может вызвать зависание приложений или закрытие приложений с сообщением об ошибке, что связано с новыми зависимостями компонентов ОС. Более подробную информацию можно найти на следующих страницах MSDN:
Переименовано приложение Outlook ExpressПриложение Outlook Express модифицировано и перемещено, и теперь носит название Windows Mail. Приложения MAPI должны знать об этом изменении. Большинство приложений, которые используют программу MAPI, установленную по умолчанию, не столкнуться ни с какими проблемами совместимости. Оболочка: Темы и папка Мои документыВ оболочке Windows Explorer добавлены новые графические темы для Windows Vista. Приложения, работающие с темами в предыдущих версиях Windows, должны быть совместимы с новыми темами. Также в Windows Vista изменены расположение и структура папки Мои документы для повышения удобства работы пользователя. Данные пользователя теперь хранятся в структуре папок \users\%username%\ . В этой папке находятся вложенные папки Рисунки, Музыка, Документы, Рабочий стол и Избранное. Если приложение использует функцию ShGetFolderPath и динамические пути к папкам, оно автоматически переключается на новый путь и новое место размещения файлов. В большинстве случаев эти изменения никак не повлияют на совместимость приложений. Быстрое переключение пользователей (FUS)Быстрое переключение пользователей (FUS) поддерживается всеми версиями Windows Vista, в том числе компьютерами, подключенными к домену. Приложения и программы установки должны поддерживать FUS и одновременную работу нескольких сеансов пользователей и подключений к терминалу сервера. Более подробную информацию можно найти в разделе Быстрое переключение пользователей в Microsoft Windows XP : Рекомендации по разработке бизнес-приложений (EN). Изменения кода CriticalSectionКод CriticalSection был изменен для повышения безопасности и надежности. Приложения, использующие блокировки критических секций:
Более подробную информацию можно найти в разделе, посвященном объектам критических секций, в MSDN (EN). Изоляция привилегий пользовательского интерфейса (UIPI)По умолчанию в Windows Vista включена изоляция привилегий пользовательского интерфейса (UIPI). Благодаря этому процесс низкого уровня целостности не может связываться с процессом более высокого уровня целостности с помощью сообщений Windows (SendMessage). Это означает, что приложения, работающие со стандартным пользовательским уровнем, не могут связываться с другими приложениями, работающими с уровнем администратора. Это также означает, что в приложениях, устанавливающих обработчики команд клавиатуры и мыши, потребуется изменить манифесты и потребовать присвоение прав. Дополнительную информацию по этой теме можно найти в разделе "Защищенный режим Internet Explorer" в настоящем документе. Программы по умолчаниюВажность функцииСредняя Краткое описаниеНовая инфраструктура программ по умолчанию управляет связями пользовательских файлов и протоколов, которые определяются с учетом борьбы за ресурсы. Для использования возможностей инфраструктуры программ по умолчанию приложение должно быть зарегистрировано. Учтите, что программы по умолчанию очень активно используются в Windows Vista и упрощают кодирование и обслуживание приложений. В современной огромной экосистеме программного обеспечения очень сложно управлять установленными по умолчанию действиями Windows, поскольку распространенные задачи могут выполняться большим числом разных приложений. Многие пользователи используют несколько программ, делающих одно и то же: обозреватели Интернета, программы для просмотра фотографий, музыкальные проигрыватели, проигрыватели фильмов, клиенты электронной почты и многие другие программы. Эти пользователи иногда сталкиваются с большими сложностями, когда приложение, установленное для того, чтобы его попробовать, контролирует поведение системы по умолчанию, например, действия при двойном нажатии кнопки мыши. Ситуация становится еще сложнее, когда на компьютер добавляется несколько пользователей. Разные пользователи начинают использовать разные приложения и перезаписывать поведение по умолчанию. Причина этой проблемы заключается в том, что связи протоколов и файлов обычно контролируются на уровне компьютера посредством записи ключей в раздел реестра HKLM (HKEY_Local_Machine). Помимо этого, некоторые приложения записывают поведения по умолчанию в другие места реестра. В результате некоторые приложения записывают поведение по умолчанию в одном месте реестра, а другие - в другом . Эта проблема становится еще серьезнее, если эти приложения хотят стать приложениями по умолчанию для определенных действий, но не могут сделать это, поскольку не перезаписывают записи других приложений во всех местах, где они есть. Таким образом, основная проблема заключается в необходимости удобного средства управления конкурирующими приложениями на одном компьютере. Средства решенияПервоначально в Windows была сделана попытка решить эту проблему с помощью модуля SPAD (Выбор программ по умолчанию). Этот модуль позволял пользователям восстанавливать действия по умолчанию для программ. Модуль SPAD просто разрешал приложениям выполнять некоторый зарегистрированный код для восстановления определенного состояния. Модуль SPAD имел глобальный характер и устанавливал программы по умолчанию для всего компьютера. Модуль SPAD сохраняется в Windows Vista, однако его смогут использовать только администраторы, которым требуется установить программы по умолчанию для всего компьютера и закрыть доступ. Однако обычные пользователи с этим модулем дела иметь не будут. В Windows Vista реализован новый набор функций приложений. Этот новый набор функций называется "Программы по умолчанию". Модуль "Программы по умолчанию" был разработан с тем, чтобы помочь пользователям устанавливать поведение системы при различных действиях. Поведение по умолчанию в Windows Vista контролируется на уровне пользователя, а не на уровне всего компьютера. Это обеспечивает дополнительную гибкость для компьютеров с несколькими пользователями, что, как мы считаем, становится стандартным явлением. При этом пользователь получает новую централизованную программу настройки, а разработчики получают средства, помогающие пользователю быстро сделать выбор. Модуль "Программы по умолчанию" обеспечивает следующие преимущества:
Эта функция первоначально предназначалась для приложений, конфликтующих из-за доступа к ресурсам. Речь идет о приложениях, которые хотят быт приложениями по умолчанию для файлов (например, mp3 и jpeg) или протоколов (http или mailto). Приложения, использующие собственные протоколы и связи между файлами, обычно не нуждаются в использовании этой новой функции, поскольку с ними не конкурируют другие приложения. Приложения, которые не конфликтуют из-за доступа к ресурсам, работают и устанавливаются так же, как и в Windows XP. Однако при этом любое приложение может использовать новый модуль "Программы по умолчанию". Модуль "Программы по умолчанию" встроен в операционную систему, как набор панелей управления и открытых прикладных интерфейсов API. Чтобы приложение могло использовать панели управления или API, их необходимо зарегистрировать во время установки в качестве части программ по умолчанию посредством написания определенной схемы. Это позволит включить приложение в панели управления программами по умолчанию, чтобы пользователь мог восстановить связи файлов и протоколов с программами по умолчанию в любое время. После регистрации приложения в программах по умолчанию, приложение может использовать новые функции, реализуемые через API. Модуль "Программы по умолчанию" обеспечивает следующие возможности с помощью API:
Модуль "Программы по умолчанию" позволяет пользователям легко и быстро менять назначение программ по умолчанию после установки программ, а также восстанавливать и устанавливать настройки программ по умолчанию. Зачем нужен модуль "Программы по умолчанию":Важные причины:
Пользователю определенно очень полезно использовать инфраструктуру "Программы по умолчанию" в ситуациях конкуренции между приложениями, однако самим приложениям она также полезна. Модуль "Программы по умолчанию" имеет пользовательский интерфейс для зарегистрированных приложений, позволяющий показать пользователю все, на что способно зарегистрированное приложение. Кроме того, приложения с цифровой подписью, содержащей адрес URL, смогут отображать ссылку на этот адрес, по которой пользователи смогут переходить на веб-узел приложения, где смогут найти дополнительные модули и приложения этой же компании-разработчика. Использование нового набора API также значительно сокращает стоимость разработки новых приложений. Практически все приложения, соревнующиеся за ресурсы, проверяют, являются ли они приложениями по умолчанию. Новый набор API можно использовать посредством одного вызова API, а не посредством операций с реестром, как в предыдущих версиях ОС. Использование нового набора API также помогает обеспечить правильную работу приложений в новой операционной системе с управлением учетными записями пользователей (UAC). Благодаря UAC, администратор является для системы стандартным пользователем. Это означает, что в Windows Vista и будущих ОС администраторы не смогут делать записи в реестре HKLM. Это предотвратит возможность выполнения процессов от имени администратора без ведома самого администратора. При установке уровень прав обычно повышается, однако если после установки приложение хочет стать программой по умолчанию, она должна запрашивать соответствующее разрешение на уровне пользователя, а не на уровне компьютера. При переключении на новый набор API это происходит автоматически. Приложения, которые захотят стать программами по умолчанию на уровне компьютера после установки, будут закрываться с ошибкой. Еще одна важная причина использования модуля "Программы по умолчанию" заключается в стабильности желаемых результатов. Связи файлов и протоколов построены на базе иерархической структуры реестра. В этой структуре программы по умолчанию на уровне пользователя являются более приоритетными, чем программы по умолчанию на уровне компьютера. Это означает, что если в коде приложения включен запрос повышения прав с целью его записи в раздел реестра HKLM как программы по умолчанию, как это делается в приложениях для XP, это далеко не всегда будет приводить к желаемому результату. При установке другого приложения подобного рода, использующего API модуля "Программы по умолчанию", устанавливающий связи файлов и протоколов с программами по умолчанию на уровне пользователя, предыдущее приложение перестанет быть программой по умолчанию, поскольку программа по умолчанию на уровне пользователя является более приоритетной. Пользовательский интерфейс модуля "Программы по умолчанию"Пользовательский интерфейс модуля "Программы по умолчанию" состоит из нескольких частей. На этих иллюстрациях показан не окончательный вид пользовательского интерфейса, который будет использоваться в Windows Vista, однако с их помощью можно понять общие принципы его работы. Схема пользовательского интерфейса модуля "Программы по умолчанию": Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.02(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.02(l=ru-ru,v=MSDN.10).gif"> Рис. 2 Меню Пуск: Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.03(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.03(l=ru-ru,v=MSDN.10).gif"> Рис. 3 Панель управления - модуль "Программы по умолчанию": Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.04(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.04(l=ru-ru,v=MSDN.10).gif"> Рис. 4 Страница "Установка программ по умолчанию": Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.05(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.05(l=ru-ru,v=MSDN.10).gif"> Рис. 5 В списке приложений отображаются только зарегистрированные приложения. Когда приложение регистрирует значение описания, оно выводится в списке справа. При регистрации требуется описание. Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.06(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.06(l=ru-ru,v=MSDN.10).gif"> Рис. 6 Команда "Восстановить по умолчанию" восстановит все зарегистрированные для приложения значения по умолчанию. Вкладка "Дополнительно" позволяет пользователю выбирать значения по умолчанию для приложения.
Дополнительно Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.07(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.07(l=ru-ru,v=MSDN.10).gif"> Рис. 7 Здесь показывается все, что зарегистрировано приложением, и для каких файлов и протоколов это приложение является значением по умолчанию. Общий API Windows позволяет приложениям вызывать это окно, благодаря чему приложениям не требуется пользовательский интерфейс для привязки к файлам. Мы рекомендуем использовать этот пользовательский интерфейс, вместо того, чтобы создавать собственный пользовательский интерфейс. "Программы по умолчанию" - рекомендации и передовые методики:Установка Установка приложений, которые устанавливаются в ОС, должна выполняться так же, как и в XP. Кроме того, приложения должны создавать собственные схемы программ по умолчанию. Регистрация новой схемы позволяет приложению использовать преимущества всех новых функций. Приложения, устанавливающиеся так, как в XP, будут работать нормально, однако для того, чтобы привязать их к файлам и протоколам, как программы по умолчанию, они должны выполнить регистрацию. При установке приложение должно выполнять следующие задачи:
После установкиПри первом запуске: При первом запуске каждым пользователем приложение должно выводить диалоговое окно. Этому совету настоятельно рекомендуется последовать. В этом окне приложение должно запрашивать у пользователя подтверждение параметров настройки. Диалоговое окно не должно выводиться только при первом запуске на компьютере. Это диалоговое окно должно предлагать пользователю два основных варианта выбора:
При принятии параметров по умолчанию вызывается API модуля "Программы по умолчанию", запрашивающий все зарегистрированные файлы и протоколы, для которых приложение является приложением по умолчанию. При этом параметры для компьютера переносятся в параметры для текущего пользователя. Если пользователь решит изменить параметры, приложение должно открывать пользовательский интерфейс настройки привязки файлов и протоколов к программам по умолчанию. Приложения могут программным путем вызывать пользовательский интерфейс Windows для привязки файлов и протоколов к программам по умолчанию для определенного приложения. Этот вариант является наиболее рекомендуемым. Пользовательский интерфейс для привязки файлов и протоколов к программам по умолчанию:Приложения, использующие пользовательский интерфейс для привязки файлов и протоколов к программам по умолчанию, должны использовать новый API модуля "Программы по умолчанию", чтобы открыть версию пользовательского интерфейса для привязки файлов и протоколов к программам по умолчанию для текущего приложения. Пример: медиа-проигрыватель Litware: Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.08(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.08(l=ru-ru,v=MSDN.10).gif"> Рис. 8 В этом окне пользователь видит все типы файлов, для которых данное приложение зарегистрировано, как программа по умолчания. Пользователь видит текущие настройки программ по умолчанию, относящиеся к файлам, поддерживаемым данным приложением, и при необходимости может изменить эти настройки. После сохранения все обновления фиксируются, и окно закрывается. После отмены окно будет закрыто. Этот пользовательский интерфейс позволяет не тратить ресурсы на создание собственного интерфейса для привязки программ для умолчания к файлам и протоколам и не беспокоиться о правильности настроек привязки. Пр��верка установки приложения в качестве программы по умолчанию:Многие приложения, например, браузеры и клиенты электронной почты, связаны с файлами и протоколами, незнакомыми конечным пользователям. В качестве примера можно назвать протоколы HTTP:\ и Mailto:\. При запуске эти приложения обычно проверяют, являются ли они программами по умолчанию. Для этого они должны использовать новый набор API модуля "Программы по умолчанию". Если приложение не является программой по умолчанию, оно должно выводить диалоговое окно со следующими вариантами выбора:
В приложениях также должна быть по умолчанию включенная опция вывода предупреждения "Сообщать мне, когда <приложение> перестает быть программой по умолчанию". Приложения НЕ должны устанавливаться как программы по умолчанию без подтверждения пользователя. Это правило должно реализовываться посредством вызова прикладных интерфейсов API модуля "Программы по умолчанию" для восстановления всех зарегистрированных связей приложения. Пример - Internet Explorer: Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.09(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.09(l=ru-ru,v=MSDN.10).gif"> Рис. 9 Регистрация в модуле "Программы по умолчанию"Модуль "Программы по умолчанию" прямо регистрирует каждое предложение для всех файлов и протоколов, к которым оно хочет быть привязано, как программа по умолчанию. Это выполняется посредством регистрации в HKLM следующей схемы. Обратите внимание, что ApplicationDescription может представлять собой как строку, так и ссылку на ресурс. Последний вариант поддерживает MUI. HKLM\%APPLICATIONCAPABILITYPATH% ApplicationDescription = REG_EXPAND_SZ "@path\to\dll.dll,-resourceId" ApplicationName = REG_EXPAND "@path\to\dll.dll,-resourceId" \FileAssociations .file-extension = REG_SZ "file-extension-progid" \UrlAssociations url-scheme = REG_SZ "url-scheme-progid" \MIMEAssociations MIME = REG_SZ "mime-progrid" \Startmenu REG_SZ StartmenuInternet ="%app Name%" Mail ="%App Name%"
HKLM\Software\RegisteredApplications unique-app-name = REG_SZ "%APPLICATIONCAPABILITYPATH%"
Пример использования веб-обозревателя Contoso:
HKLM\software\Contoso\WebBrowser\Capabilities Description =" The award-winning Web browser is better than ever. Search the internet in second and find anything you want. Use integrated tabs and new phishing detectors to enhance your internet experience." \FileAssociations .htm = ContosoHTML .html = ContosoHTML .shtml = ContosoHTML .xht = ContosoHTML .xhtml = ContosoHTML \UrlAssociations http = Contoso.Url.Http https = Contoso.Url.Https ftp = Contoso.Url.ftp \Startmenu StartmenuInternet = "Contoso.exe" HKLM\software\RegisteredApplications Contoso.WebBrowser.1.06 = software\Contoso\WebBrowser\Capabilities Идентификаторы ProgIdПриложения должны иметь идентификаторы ProgId. Эти идентификаторы должны содержать всю информацию, записываемую в ключ по умолчанию. Приложения могут привязывать идентификатор progid к одному или нескольким протоколам/расширениям файлов. Оба варианта работают одинаково. В примере выше ContosoHTML указывает на один идентификатор progid, имеющий информацию shellexecute для файлов с расширением htm, html, shtml, xht и xhtml. При работе с протоколами определяется отдельный идентификатор progid для каждого протокола. В связи с этим строки исполнения для разных протоколов различаются. При определении идентификатора ProgID для MIME, в этот идентификатор следует включить подключ CLSID с идентификатором класса для соответствующего приложения. Он используется для сверки с идентификатором класса в базе данных MIME, хранящемся в HKLM. Определения значенийCapabilities - Вложенный ключ реестра, в котором содержится вся информация модуля "Программы по умолчанию" для определенного приложения. Вложенный ключ capabilities всегда находится на более низком уровне, чем ключи реестра приложений. Description - Модуль "Программы по умолчанию" разработан так, чтобы пользователи могли свободно делать выбор на основании имеющейся информации. Мы позволяем всем приложениям регистрировать строки описаний, чтобы каждое приложение могло сообщать пользователю о своих возможностях. Это значение является свойством в ключе \capabilities.
ApplicationName - Указывает имя приложения, которое отображается в пользовательском интерфейсе модуля "Программы по умолчанию". Если это поле не заполнено, модуль "Программы по умолчанию" использует имя исполняемого файла, связанного с первым зарегистрированным идентификатором progid для данного приложения. Значение имени ApplicationName всегда должно соответствовать значению имени RegisteredApplications. FileAssocations - В этом вложенном ключе перечисляются все типы файлов, к которым данное приложение хочет быть привязано, как приложение по умолчанию. Каждая привязка сохраняется как свойство вложенного ключа FileAssocations. Каждому расширению должен соответствовать идентификатор progid для определенного приложения, а не общий идентификатор progid. UrlAssocaitions - В этом вложенном ключе перечисляются все типы URL, к которым данное приложение хочет быть привязано, как приложение по умолчанию. Каждая привязка сохраняется как свойство вложенного ключа UrlAssocations. Каждому протоколу должен соответствовать идентификатор progid для определенного приложения, а не общий идентификатор progid. MIMEAssocaitions - В этом вложенном ключе перечисляются все MIME, к которым данное приложение хочет быть привязано, как приложение по умолчанию. Каждая привязка сохраняется как свойство вложенного ключа MIMEAssocations. Указанное имя MIME должно точно соответствовать имени, хранящемуся в базе данных MIME. Значение должно представлять собой идентификатор progid для определенного приложения, содержащий в себе идентификатор CLSID. Startmenu - Вложенный ключ startmenu предназначается для команд меню "Пуск" для работы с Интернетом и электронной почтой. Приложения, регистрирующиеся как претенденты на привязку к этим командам, могут указывать соответствующие связи в записи модуля "Программы по умолчанию" в реестре. Регистрация в меню "Пуск" позволяет приложению показать, что оно хочет, чтобы соответствующая ссылка отображалась в записи модуля "Программы по умолчанию" для электронной почты или Интернета. Если эта информация указана, и пользователь делает приложение программой по умолчанию, данное приложение также связывается с меню "Пуск". Регистрация заключается во включении имени зарегистрированного ключа в раздел HKLM\software\clients\StartMenuInternet или HKLM\software\clients\Mail. При привязке к почтовому клиенту этот ключ также определяет почтовый клиент MAPI, используемый по умолчанию.
HKLM\software\RegisteredApplications - RegisteredApplications позволяет ОС определить, где хранится вся информация о приложении. Это значение должно соответствовать имени приложения. Использование API модуля "Программы по умолчанию"После регистрации приложения это приложение может использовать ряд API для повышения удобства работы пользователя. Этот интерфейс должен быть включен в июньском выпуске CTP. В версии Beta2 используется несколько другой интерфейс, измененный на основании отзывов пользователей. typedef [v1_enum] enum tagASSOCIATIONLEVEL { AL_MACHINE, AL_EFFECTIVE, AL_USER } ASSOCIATIONLEVEL; typedef [v1_enum] enum tagASSOCIATIONTYPE { AT_FILEEXTENSION, AT_URLPROTOCOL, AT_STARTMENUCLIENT, AT_MIMETYPE } ASSOCIATIONTYPE; [ object, uuid(4e530b0a-e611-4c77-a3ac-9031d022281b), pointer_default(unique), helpstring("Application File Extension and URL Protocol Registration") ] interface IApplicationAssociationRegistration : IUnknown { HRESULT QueryCurrentDefault( [in, string] LPCWSTR pszQuery, [in] ASSOCIATIONTYPE atQueryType, [in] ASSOCIATIONLEVEL alQueryLevel, [out, string] LPWSTR* ppszAssociation); HRESULT QueryAppIsDefault( [in, string] LPCWSTR pszQuery, [in] ASSOCIATIONTYPE atQueryType, [in] ASSOCIATIONLEVEL alQueryLevel, [in, string] LPCWSTR pszAppRegistryName, [out] BOOL* pfDefault); HRESULT QueryAppIsDefaultAll( [in] ASSOCIATIONLEVEL alQueryLevel, [in, string] LPCWSTR pszAppRegistryName, [out] BOOL* pfDefault); HRESULT SetAppAsDefault( [in, string] LPCWSTR pszAppRegistryName, [in, string] LPCWSTR pszSet, [in] ASSOCIATIONTYPE atSetType); HRESULT SetAppAsDefaultAll( [in, string] LPCWSTR pszAppRegistryName); HRESULT ClearUserAssociations(); } interface IApplicationAssociationRegistrationUI : IUnknown { HRESULT LaunchAdvancedAssociationUI([in, string] LPCWSTR pszAppRegName); } AssociationLevel AL_MACHINE - выводит установленную для компьютера программу по умолчанию для расширения. AL_EFFECTIVE - выводит действующую программу по умолчанию для текущего пользователя.
AL_USER - выводит программу по умолчанию для текущего пользователя. При отсутствии программы по умолчанию для текущего пользователя выводится код ошибки 0x80070483. AssociationType AT_FILEEXTENSION - используется для запроса расширения файла (например, .htm или .mp3) AT_URLPROTOCOL - используется для запроса протокола (например, http:// или mailto:) AT_STARTMENUCLIENT - используется для запроса программы по умолчанию, установленной для команд вызова почтового клиента или обозревателя Интернет в меню "Пуск". AT_MIMETYPE - используется для запроса типа MIME, например, audio/mp3. QueryCurrentDefault При указании расширения (.mp3, HTTP, и т.д.), типа расширения и уровня привязки выводится идентификатор ProgID для текущей программы по умолчанию. Обычно приложения должны использовать уровень привязки AL_EFFECTIVE, поскольку он определяет программу по умолчанию, действующую для текущего пользователя. Вызывающий код должен выполнять команду CoTaskMemFree для выводимой строки progid. QueryAppIsDefault При указании расширения (.mp3, HTTP, и т.д.), типа расширения, уровня привязки и зарегистрированного имени приложения выводится логическое выражение BOOL, на основании которого приложение является программой по умолчанию. Обычно приложения должны использовать уровень привязки AL_EFFECTIVE, поскольку он определяет программу по умолчанию, действующую для текущего пользователя. QueryAppIsDefaultAll При указании уровня привязки и зарегистрированного имени приложения выводится логическое выражение BOOL, на основании которого приложение является зарегистрированной программой по умолчанию для всех привязанных к нему расширений файлов и протоколов. Обычно приложения должны использовать уровень привязки AL_EFFECTIVE, поскольку он определяет программу по умолчанию, действующую для текущего пользователя. SetAppAsDefault Указание имени зарегистрированного приложения, расширения (.mp3, HTTP, и т.д.) и типа расширения. Зарегистрированное приложение устанавливается, как программа по умолчанию. SetAppAsDefaultAll Указание имени зарегистрированного приложения. Зарегистрированное приложение устанавливается как программа по умолчанию для всех привязанных к нему расширений файлов и протоколов. ClearUserAssociations Удаляет все привязки для текущего пользователя, восстанавливая настройки программ по умолчанию для компьютера. В настоящее время не планируется, что этот прикладной интерфейс будет вызываться партнером или сторонним сценарием. Однако эту возможность необходимо реализовать. LaunchAdvancedAssociationUI Указанное регистрационное имя приложения должно соответствовать одному из значений в разделе HKLM\Software\RegisteredApplications. Этот прикладной интерфейс запускает страницу Set Program Associations для указанного приложения. Он предназначен для использования приложениями, которым требуется прямая связь с расширенной конфигурацией привязок.
Примеры кодаНиже приведен пример реализации набора API для регистрации веб-обозревателя Contoso. Запрос подтверждения того, что веб-обозреватель Contoso установлен, как программа по умолчанию для всех привязанных к нему расширений файлов и протоколов: HRESULT CheckContosoHasAllDefaults(__out BOOL* pfHasAllDefaults) { IApplicationAssociationRegistration* pAAR; HRESULT hr = CoCreateInstance(CLSID_ApplicationAssociationRegistration, NULL, CLSCTX_INPROC, __uuidof(IApplicationAssociationRegistration), (void**)&pAAR); if (SUCCEEDED(hr)) { hr = pAAR->QueryAppIsDefaultAll(AL_EFFECTIVE, L"Contoso.WebBrowser.1.06", pfHasAllDefaults); pAAR->Release(); } return hr; } Запрос подтверждения того, что веб-обозреватель Contoso установлен, как программа по умолчанию для расширения .htm: HRESULT CheckContosoHasDotHTM(__out BOOL* pfHasDotHTM) { IApplicationAssociationRegistration* pAAR; HRESULT hr = CoCreateInstance(CLSID_ApplicationAssociationRegistration, NULL, CLSCTX_INPROC, __uuidof(IApplicationAssociationRegistration), (void**)&pAAR); if (SUCCEEDED(hr)) { hr = pAAR->QueryAppIsDefault(L".htm", AT_FILEEXTENSION, AL_EFFECTIVE, L"Contoso.WebBrowser.1.06", pfHasDotHTM); pAAR->Release(); } return hr; } Установка веб-обозревателя Contoso, как программы по умолчанию для расширения .htm: HRESULT SetContosoAsDefaultForDotHTM() { IApplicationAssociationRegistration* pAAR; HRESULT hr = CoCreateInstance(CLSID_ApplicationAssociationRegistration, NULL, CLSCTX_INPROC, __uuidof(IApplicationAssociationRegistration), (void**)&pAAR); if (SUCCEEDED(hr)) { hr = pAAR->SetAppAsDefault(L"Contoso.WebBrowser.1.06", L".htm", AT_FILEEXTENSION); pAAR->Release(); } return hr; } Материалы по привязке файловБолее подробную информацию по привязке файлов можно найти на следующей странице: http://msdn2.microsoft.com/library/aa969346.aspx (EN) Более подробную информацию по регистрации программ для типов клиентов можно найти на следующей странице: http://msdn2.microsoft.com/library/aa969350.aspx (EN) Более подробную информацию по командам для привязки файлов можно найти на следующей странице: http://msdn2.microsoft.com/library/aa969385.aspx (EN) Более подробную информацию по типам файлов можно найти на следующей странице: http://msdn2.microsoft.com/library/aa969371.aspx (EN) Помощник по обеспечению совместимости программ (PCA) в Windows Vista - Документация для пользователяВведение в PCAВ Windows XP для решения проблем с совместимостью программ используется Мастер совместимости программ (в группе Стандартные в меню Пуск) и вкладка Совместимость в свойствах файла. Основное ограничение этих инструментов заключается в их труднодоступности, а также в том, что пользователь должен знать, когда использовать эти инструменты. Помощник по обеспечению совместимости программ (PCA) - новый компонент Windows Vista, обеспечивающий более хорошую работу старых программ, у которых есть проблемы с совместимостью, используя для этого автоматизированные средства. Если PCA обнаружит известную проблему с совместимостью после того, как пользователь запустит старую программу, он сообщит пользователю о проблеме и предложит решение, которое будет использовано при следующем запуске программы.
В следующих разделах описаны сценарии, в которых пользователь сталкивается с PCA, подробно описывается его взаимодействие с пользователем, рассказывается о применении решения в разных сценариях и приводятся сведения об управлении параметрами PCA после внесения изменений. В последнем разделе рассказывается о том, как исключить программы из PCA. Сценарии РСАОбнаружение ошибок установки Один из основных сценариев использования PCA заключается в обнаружении ошибок установки приложений в Windows Vista. В качестве решения РСА предлагает применять режим совместимости Windows XP. Наиболее распространенная ошибка установки связана с тем, что в программах установки закодирована проверка версии Windows, в которой они запускаются. Обычно эти программы установки прекращают работать и выводят сообщение об ошибке, гласящее, что текущая версия Windows не поддерживается. Обычно эти программы используют API GetVersion или GetVersionEx для получения информации о текущей версии Windows. В Windows Vista эти API выводят основной номер версии 6. Если программа закодирована на работу с версией XP (основной номер версии 5), она не будет работать в Windows Vista. Исправление XPVersionLie в режиме совместимости с Windows XP сообщает программе номер версии XP при вызове API GetVersion или GetVersionEx. Ниже приведен пример сообщения об ошибке программного обеспечения Microsoft Intellitype для клавиатуры и мыши, которое не работало в Windows Vista, что выяснилось при тестировании совместимости приложений в Windows, Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.10(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.10(l=ru-ru,v=MSDN.10).gif"> Рис. 10 PCA определяет этот сценарий и после закрытия программы установки выводит диалоговое окно, показанное на рисунке ниже. Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.11(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.11(l=ru-ru,v=MSDN.10).gif"> Рис. 11 Когда пользователь выбирает опцию 'Переустановить с рекомендуемыми параметрами', программа установки будет автоматически перезапущена в режиме совместимости с Windows XP. Ответы на вопросы, приведенные ниже, помогут лучше понять, что при этом происходит:
При выборе любой из этих опций диалоговое окно PCA закроется. Диалоговое окно PCA больше не будет выводиться для той же самой программы установки, если только пользователь не выберет опцию "Отмена". Обнаружение ошибок программы при использовании управления учетными записями пользователейВторой сценарий использования PCA заключается в обнаружении ошибок программы при использовании управления учетными записями пользователей (UAC). В этом сценарии в программе, имеющей низкий уровень прав, возникает ошибка при запуске подчиненного исполняемого файла, потому что этот файл определяется как программа установки и требует запуска с уровнем прав администратора. Обычно это происходит с программами, пытающимися запустить исполняемый файл обновления программы. Если тот же самый исполняемый файл обновления запускается из проводника, проводник выводит диалоговое окно подтверждения и запускает программу с требуемым уровнем прав. В этом случае PCA применяет режим совместимости ELEVATECREATEPROCESS, позволяющий программе успешно запускать подчиненный исполняемый файл с правами администратора. Когда программа попытается в следующий раз запустить подчиненный исполняемый файл, пользователь увидит диалоговое окно UAC с предложением подтвердить или указать учетные данные администратора. Ниже приведен пример диалогового окна PCA, которое выводится в этом сценарии. В качестве примера взята программа для тестирования. Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.12(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.12(l=ru-ru,v=MSDN.10).gif"> Рис. 12 Программа для тестирования пыталась загрузить программу обновления, требующую повышенных прав, в результате чего произошла ошибка. Эта ошибка была обнаружена PCA. Когда программа будет запущена в следующий раз и попытается запустить программу обновления, ошибки не возникнет, и программа будет успешно запущена с дополнительными правами. Пользователь увидит диалоговое окно подтверждения UAC, как показано ниже. Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.13(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.13(l=ru-ru,v=MSDN.10).gif"> Рис. 13 Ответы на вопросы, приведенные ниже, помогут лучше понять, что при этом происходит:
Информирование пользователей при запуске о выявленных проблемах с совместимостью программПомимо двух сценариев с обнаружением ошибок при исполнении действий, в PCA также включен сценарий, выполняемый при запуске программы. Этот сценарий выполняет сопоставление со списком программ, для которых выявлены проблемы с совместимостью. Этот список хранится в системной базе данных совместимости приложений. Этот сценарий существовал в Windows XP, и выводимые им сообщения называются apphelp. Существует два типа приложений apphelp. Если известно, что программа не совместима, и если выполнение программы может оказать серьезное воздействие на систему (например, вызвать остановку работы или невозможность загрузки), будет выведено сообщение о блокировке, как показано ниже.
Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.14(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.14(l=ru-ru,v=MSDN.10).gif"> Рис. 14 Также используются и сообщения другого типа, не сообщающие о блокировке. Они выводятся при запуске программ, в которых выявлены проблемы с совместимостью, не имеющие серьезных последствий. Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.15(l=ru-ru,v=MSDN.10).gif" target=_blank style=color:white;>Открыть в полный размер' href="http://msdn.microsoft.com/ru-RU/library/Bb757005.15(l=ru-ru,v=MSDN.10).gif"> Рис. 15 В обоих случаях при выборе варианта 'Проверка решений' отправляется отчет об ошибке Windows, после чего с веб-узла Майкрософт получается ответ, предлагающий решение проблемы. Ответы выводятся в клиентском окне "Решения проблем" (wercon.exe). Обычно ответы бывают трех типов:
Управление параметрами, которые были изменены PCAРежим совместимости применяется к программам посредством установки ключа реестра в разделе 'Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers'. Имя ключа должно содержать полный путь к исполняемому файлу, а значение - название применяемого режима совместимости. Для сценария программы установки:
Для сценария UAC:
Исключение программ из РСАPCA предназначается для обнаружения проблем со старыми программами и не следит за программами, разработанными для ОС Windows Vista. Самый лучший вариант исключения программы из PCA заключается в том, чтобы включить в нее манифест уровня доступа (администратор или стандартный пользователь) для системы UAC. Это означает, что программа протестирована на совместимость с UAC (и Windows Vista). PCA проверяет наличие этого манифеста, и исключает программу из своего списка. Это относится как к программам установки, так и к обычным программам. Более подробную информацию по управлению правами доступа и созданию манифеста UAC можно найти на следующей странице: http://msdn2.microsoft.com/library/Aa480150.aspx (EN). Также имеется групповая политика, позволяющая отключить РСА для всех программ. Данная политика называется 'Отключить Помощник по обеспечению совместимости программ' и находится в разделе 'Административные шаблоны -> Компоненты Windows -> Совместимость приложений' в редакторе групповых политик (gpedit.msc). Управление сообщениями ApphelpIT-специалист компании может использовать инструмент Compatibility Administrator для отключения записей apphelp в системной базе данных совместимости приложений или для добавления собственных баз данных, содержащих сообщения apphelp для конкретного предприятия. Инструмент Compatibility Administrator входит в состав набора Application Compatibility Toolkit. Более подробную информацию об этом наборе можно найти на следующей странице: http://technet.microsoft.com/windowsvista/aa905078.aspx GDIРазличия поведения при рисовании (WM_PAINT)Важность функцииНизкая Краткое описаниеВ новом менеджере окон рабочего стола корпорация Майкрософт внесла небольшие изменения в процесс рисования окон приложений на экране. До появления Windows Vista вывод hwnd осуществлялся непосредственно на экран, что давало определенные преимущества, но ограничивало возможности Windows по отображению окон верхнего уровня и управлению ими. В Windows Vista выполняется рендеринг всех окон верхнего уровня в битовом изображении (как в WS_EX_LAYERED), и менеджер окон рабочего стола объединяет изображения для рисования рабочего стола. ПроявленияЧерные области вокруг подсказок, всплывающих меню, всплывающих заставок, и других подобных объектов. Это может происходить, когда приложение рисует не все окно hwnd, что обычно происходит, когда приложение предполагает, что пиксели фоновых окон подходят для нового окна. Корпорация Майкрософт активно работает над решением проблем в этой области, и поэтому мы рекомендуем не увлекаться оптимизацией на основании текущих параметров, а отправлять нам отзывы и предложения. Черные участки Сходная проблема возникает, когда приложение выполняет рисование, не используя WM_PAINT. USER определяет, что приложение выполняет рисование, и перерисовывает рабочий стол, однако при этом приложение может еще не завершить рисование hwnd, в результате чего битовое изображение может содержать неинициализированные пиксели (черные). Корпорация Майкрософт активно работает над решением проблем и в этой области, и поэтому мы просим отправлять нам отзывы и предложения по данному вопросу. Отключение прозрачности для приложения Это происходит, когда приложение рисует в области окна, не относящейся к клиенту (панель заголовка). Ластики, тени и другие специальные эффекты Эти объекты обычно рисуются с помощью GetDC(NULL); однако чтение и запись в GetDC(NULL) сопряжены с проблемами, когда приложения используют битовое изображение, а не рисуют изображение непосредственно на экране. Чтение и запись на экран происходят значительно медленнее, чем в Windows XP. Кроме того, поддерживаются не все операции растеризации GDI (XOR поддерживается). Улучшенная поддержка азиатских шрифтов В Windows Vista значительно изменена поддержка китайских, японских и корейских шрифтов, что делает их более удобными для чтения. Это изменение имеет несколько побочных эффектов, один из которых заключается в том, что расположение текста на экране и ширина символов немного изменяются. Протестируйте отображение текста на экране и его вывод на печать. Также протестируйте случаи, когда азиатские шрифты смешиваются с шрифтами латиницы. Производительность рендерингаВажность функцииНизкая Краткое описаниеБольшинство приложений работают Windows Vista так же как раньше, и даже быстрее, но за некоторыми изменениями необходимо следить. ПроявленияСнизилась производительность рисования GDI? Рендеринг примитивов GDI, таких как LineTo и Rectangle, теперь осуществляется на программном уровне, а не на уровне оборудования, что упрощает драйверы экрана. Мы не думаем, что это повлияет на большое число приложений, но если вы с этим столкнетесь, сообщите нам. Медленный рендеринг текста? Вызовы типа DrawText теперь лучше поддерживают азиатские и другие иностранные языки. Мы не думаем, что это повлияет на большое число приложений, но если вы с этим столкнетесь, сообщите нам. Уменьшено адресное пространство приложения? Битовое изображение окна верхнего уровня теперь хранится в адресном пространстве приложения (см. раздел, посвященный рисованию), что может привести к уменьшению доступного адресного пространства на несколько мегабайт. Операции чтения и записи GetDC(NULL) Эти операции выполняются медленнее, чем в предыдущих версиях Windows, потому что теперь приложения выполняют рендеринг в битовое изображение, а не непосредственно на экран. По возможности используйте рисование в HDC с использованием HWND, или создавайте окна поверх других окон. Для получения снимка экрана по прежнему рекомендуется использовать GetDC(NULL). UIPI (графический интерфейс управления учетными записями пользователей)Важность функцииНизкая Краткое описаниеВ качестве дополнительной защиты от вредоносных программ в Windows Vista разные приложения работают с тремя уровнями привилегий. Приложения могут свободно взаимодействовать с приложениями такого же или более низкого уровня, но не могут взаимодействовать с приложениями более высокого уровня или модифицировать их. Большинство приложений имеет средний уровень привилегий. Приложения, которым требуются права администратора, имеют высокий уровень привилегий, а потенциально опасные процессы, такие как Internet Explorer, имеют самый низкий уровень привилегий. Приложения с низким уровнем привилегий не могут отправлять сообщения приложениям с более высоким уровнем привилегий, если эти приложения с более высоким уровнем привилегий явно не требуют отправки таких сообщений посредством вызова функции ChangeWindowMessageFilter(). Приложения с низким уровнем привилегий имеют доступ для чтения к HWND приложений с более высоким уровнем привилегий. Для целей совместимости будут выводиться сообщения об успешном выполнении операции SendMessage и других API, даже если API блокируется из-за недостаточного уровня привилегий. Кроме того, в случаях, когда имеются проблемы с совместимостью, а уровень риска невелик, приложения с низким уровнем привилегий могут отправлять сообщения приложениям с высоким уровнем привилегий без запроса. ПроявленияПриложения перестают взаимодействовать с другими приложениями. Программы, меняющие положение окон, вводящие текст, добавляющие кнопки в окна, и т.д. Не работают операции вырезания и вставки из одного приложения в другое. Проверьте, работает ли все так как нужно, и поддерживаются ли все нужные форматы буфера обмена (форматированный текст, HTML, и т.д.) Средства решенияОбработчики ведения журнала WH_JOURNALPLAYBACK и WH_JOURNALRECORD являются перекрестными процессами, и соответственно с этим требуют самый высокий уровень привилегий. Во многих случаях вместо обработчиков ведения журнала можно использовать API SendInput() , не требующий полного уровня привилегий. Также необходимо проверить исходный код всех программ, где используются следующие API, поскольку они часто указывают на наличие перекрестных процессов: SendInput Этот список не является исчерпывающим и не гарантирует все, что можно изменить, однако он позволяет сбалансировать обнаружение проблем с минимальным количеством ложных положительных результатов. Вы можете выполнить поиск в исходных файлах с помощью команды findstr /s /g:temp.txt *.c *.cpp *.h *.hpp , где temp.txt - приведенный выше список API, скопированный в текстовый файл. Масштабирование в высоком раз��ешенииВажность функцииНизкая Краткое описаниеВ системах с высоким разрешением (в точках на дюйм) приложения не всегда понимают, что высокое разрешение автоматически масштабируется. ПроявленияВ течение долгого времени размеры пикселей не менялись, однако в последнее время производители ЖК-дисплеев начинают выпускать мониторы с пикселями уменьшенного размера, т.е. с большим количеством точек на дюйм (dpi). Если приложение использует на экране с высоким разрешением такое же число пикселей, что и на стандартном экране с разрешением 96 точек на дюйм, это приложение выглядит на экране очень маленьким. В Windows Vista появилась возможность масштабирования приложений, написанных для экранов с разрешением 96 точек на дюйм. Масштабирование выполняется посредством рендеринга битового изображения приложения с увеличенным размером. Как и всегда при масштабировании битовых изображений это может привести к некоторой размытости, однако во всех остальных отношениях обеспечивает нормальный размер и правильность рендеринга изображения. В приложениях также может быть реализована поддержка высокого разрешения, обеспечивающая самое высокое качество изображения. Сейчас приложения могут отключать масштабирование и объявлять о поддержке определения разрешения с помощью вызова SetProcessDPIAware().. В настоящее время рассматриваются способы объявления, основанные на использовании манифестов. Более подробную информацию по написанию приложений с встроенной поддержкой высокого разрешения можно найти на следующей странице: http://msdn2.microsoft.com/library/ms969894.aspx (EN). В остальной части этого раздела рассказывается о возможных проблемах с приложениями, которые не поддерживают DPI. Приложения запрашивают Windows о различных вещах, например, "какова должна быть ширина панели прокрутки в пикселях", и для приложений с разрешением 96 точек на дюйм Windows Vista дает соответствующий ответ. Однако иногда Windows не дает ответ, основанный на характеристиках приложения, что связано с тем, что у Windows Vista нет нужной информации (пришлите нам информацию о своем приложении), а в некоторых случаях с тем, что правильность ответа зависит от того, для чего он требуется. Эта проблема часто связана с экранными координатами. Из-за этого и возникает большинство проблем с совместимостью. На что нужно обращать внимание при тестировании:
Средства решенияБолее подробную информацию по написанию приложений с встроенной поддержкой высокого разрешения можно найти на следующей странице: http://msdn2.microsoft.com/library/ms969894.aspx. Значки PNGВажность функцииНизкая Краткое описаниеФормат файлов значков (*.ico) теперь поддерживает графические файлы в формате PNG в дополнение к графическим файлам в формате BMP. Многие значки в Windows Vista используют формат PNG. ПроявленияПриложения для просмотра или редактирования файлов значков могут не понимать новый формат. СсылкиЭта информация является дополнением к информации, находящейся на следующей странице: http://msdn2.microsoft.com/library/Aa480152.aspx (EN) Укрепление именованных программных каналовКраткое описаниеВ Windows Vista учетные записи с низким уровнем привилегий используются многими службами, например, сетевыми (NS) или локальными (LS). Целью укрепления защиты служб заключается в том, чтобы лучше отделить службы друг от друга, чтобы в случае заражения или взлома одной службы, она не могла атаковать остальную часть системы. Именованные программные каналы в Windows Vista укрепляются с помощью серверов RPC, что предотвращает попытки других процессов взломать или захватить их. В Windows XP сервер вызова удаленной процедуры RPC создает именованный канал, и уровень контроля доступа этого канала предоставляет уровень доступа "Полный контроль" локальной или сетевой службе. При этом они получают возможность создавать серверные экземпляры канала, к которым могут подключаться клиенты. Экземпляры канала должны создаваться только тем процессом, который первоначально создает сам этот канал. Изменение уровня контроля доступа (ACL) ограничивает возможность создания серверных экземпляров. Теперь их может создавать только тот процесс, который первоначально создает канал. ПроявленияЭто влияет на следующие службы: локальные и сетевые службы, службы, которые используют идентификаторы Sid, а также службы, которые используют вызов удаленных процедур через именованные каналы с запросом стандартных дескрипторов безопасности именованных каналов. Использование идентификаторов Sid, означает, что на какие сторонние службы это не влияет. Идентификаторы служб Sid - это новая возможность в Windows Vista, для использования которой необходимо установить DWORD в конфигурации службы. Если разработчики решают их использовать, они имеют возможность протестировать службу в новых условиях. Изменения будут проявляться, как описано. Службы, которые используют вызов удаленных процедур через именованные каналы с запросом стандартных дескрипторов безопасности именованных каналов, не обнаружат изменений, если сервер вызова удаленных процедур требует использования нестандартного дескриптора безопасности по каким-либо особым соображениям. Ниже приведен список соответствующих каналов: Epmapper Исключение или замена SPAP (Pstore)Краткое описаниеЗащищенное хранилище (PStore) предоставляет приложениям интерфейс для хранения пользовательских данных, которые должны быть защищены от модификации. В Windows Vista это хранилище доступно только для чтения. Это означает, что ни одно приложение не сможет создать новые объекты данных PStore. Средства решенияИспользование DPAPI для реализации процедур PStore. Более подробную информацию о существующих объектах PStore и использовании DPAPI для управления ими можно найти на следующей странице: http://msdn2.microsoft.com/library/ms995355.aspx (EN) Поставщики WMI: Стандартная модель безопасностиКраткое описаниеСтандартная модель HostingModel для поставщиков WMI изменена с LocalSystem на NetworkServiceHost. В предыдущих версиях Windows (до Windows Vista Beta 2) по умолчанию для поставщика WMI (свойство __Win32Provider.HostingModel ) устанавливалась модель LocalSystem. Поскольку учетная запись LocalSystem имеет очень высокий уровень привилегий, работа поставщика WMI в этом контексте создает риск несанкционированного повышения уровня привилегий (степень риска зависит от качества кода и качества тестирования поставщика). В большинстве случаев контекст LocalSystem не требуется, и более подходящим является контекст NetworkServiceHost. Это особенно верно с учетом того, что большинство поставщиков WMI должны олицетворять (ImpersonationLevel=1) клиентский контекст безопасности для выполнения требуемых операций клиентом WMI. ПроявленияЕсли у поставщика WMI нет определения модели владельца, и если он выполняется так, как если бы он работал на уровне LocalSystem, он не будет работать надлежащим образом. Средства решенияОжидаемая модель безопасности должна быть изменена, чтобы код поставщика WMI выполнял операции в контексте безопасности клиента, олицетворяя клиент WMI. Случаи, когда требуется изменение контекста безопасности LocalSystem, встречаются крайне редко. Однако в случае если использование уровня LocalSystem является абсолютной необходимостью, модель владельца необходимо устанавливать явным образом с помощью утверждения HostingModel=LocalSystemHost в файле MOF поставщика. СсылкиСлужба теневого копирования томовКраткое описаниеСлужба теневого копирования томов (VSS) - это новая служба Windows XP и Windows Server 2003. Она упрощает связь между приложениями, подсистемами хранения данных и приложениями для управления хранением данных (в том числе приложениями для резервного копирования). Эта служба определяет, устанавливает и использует копии данных для определенных моментов времени. ПроявленияСовместимость с приложениями для резервного копирования в Windows XP Некоторые интерфейсы изменились со времен XP, а библиотеки могут быть не совместимы с Windows Vista. Приложения следует перекомпилировать с использованием заголовков или библиотек пакета VSS SDK 7.2 или пакета Platform SDK, выпущенного с версией Windows Vista Beta 2. Совместимость с приложениями для резервного копирования в Windows Server 2003 SP1 Двоичные файлы Windows Server 2003 SP1 совместимы с Windows Vista. Большинство приложений для резервного копирования также должны учитывать изменения в устройствах записи, изменения виртуализации файлов и реестров, изменения WRP, а также использование прямых ссылок в %windir%system32, в результате чего вероятность нормальной работы приложений Windows Server 2003 SP1 значительно уменьшается. Компиляция приложений резервного копирования для Windows Vista Приложения, использующие доступные интерфейсы Server 2003, можно скомпилировать с помощью заголовков и библиотек из пакета VSS SDK 7.2. Чтобы использовать новые интерфейсы Windows Vista, необходимо выполнить перекомпиляцию с использованием заголовков и библиотек VSS из пакета Platform SDK для Windows Vista. Первая версия пакета SDK с компонентами VSS была выпущена вместе с версией Windows Vista Beta 2. Устройства записи VSS в Windows VistaУстройство записи в реестр Registry Writer Теперь Registry Writer отвечает за резервное копирование и восстановление реестра, заменяя предыдущую схему. Средство записи Registry Writer не сообщает о пользовательских комплексах (ульях). Средство записи COM+ RegDB Данное средство выполняет резервное копирование содержимого %systemroot%\registration. COM+ зависит от ключа реестра, для которого выполняется резервное копирование, и поэтому резервное копирование и восстановление COM+ требуется выполнять одновременно с соответствующими операциями с реестром. Средство записи MS Search Writer Удаляет поисковый индекс из теневых копий после создания. Средство записи MSDE Writer Средство записи, используемое по умолчанию для баз данных SQL 2000 и SQL 2005. Средство записи WMI Writer Средство записи WMI VSS writer используется для резервного копирования определенных состояний и данных WMI. Эти данные включают файлы из репозитория WBEM и требуют выполнения резервного копирования реестра. Средство записи службы BITS Это средство записи использует ключ реестра FilesNotToBackup для исключения файлов из каталога %allusersprofile%\application\data\microsoft\network\downloader. Средство записи автоматического восстановления системы (ASR Writer) Средство записи ASR Writer сохраняет конфигурацию дисков системы. Средство записи System Writer В Windows Vista средство записи System Writer создает список файлов, используя следующую формулу:
Файлы в каталоге %windir%\system32 представляют собой закодированные ссылки на каталог winsxs. Приложение восстановления отвечает за размещение файлов и реестра и настройку параметров уровня контроля доступа в соответствии со снимком системы. Также необходимо создавать соответствующие ссылки. Средство записи Microsoft Optimization Writer Это средство записи удаляет определенные файлы из снимков. При удалении файлов максимально сокращается объем операций копирования при записи на этапе обслуживания снимка. Обычно удаляются временные файлы и файлы, которые не составляют пользовательское состояние или состояние системы. Ссылки
Анализатор стандартных пользователейСредство "Standard User Analyzer" (ранее носившее наименование "LUA Analyzer") предназначено для разработчиков ПО, IT-специалистов и пользователей, желающих провести диагностику приложения при его выполнении с правами стандартного пользователя. Анализатор Standard User Analyzer построено на базе технологии предикторов "LUA Predictor", входящей в состав средства Microsoft Application Verifier. Требования к установке и совместимостьОперационные системы: Windows Vista, Windows XP и Windows Server 2003. Примечание
УстановкаДля установки анализатора Standard User Analyzer необходимо запустить файл SUAnalyzer.msi. Все файлы инструмента Standard User Analyzer будут установлены в папку "Program Files\Standard User Analyzer". Примечание
Примечание
Примечание При тестировании анализатор Standard User Analyzer запускает приложение, отслеживает его действия и ожидает закрытия приложения. После этого анализатор Standard User Analyzer генерирует и проверяет отчет для приложения, что может занять некоторое время. После завершения генерирования и проверки отчета необходимо нажимать на отдельные вкладки, чтобы просмотреть конкретные проблемы, обнаруженные анализатором Standard User Analyzer. Табл. 1. Интерпретация данных тестирования Standard User Analyzer
При нажатии на проблему на отдельной вкладке на нижней левой панели анализатора Standard User Analyzer отображаются все соответствующие записи из файла журнала. Вы можете нажать на любую запись, и в нижней правой панели будет отображена подробная информация для этой записи, включающая формат сообщений, параметры и след стека. Разработчики могут использовать данные следа стека для отслеживания проблемы в исходном коде приложения.
Главное меню анализатора Standard User AnalyzerМеню "Файл"Открыть файл журнала: загрузка сохраненного файла журнала. Экспортировать файл журнала: сохранение текущего файла журнала. Просмотр неформатированного файла журнала: открытие текущего файла журнала в формате xml. (Внимание: если файл имеет большой размер, он будет долго открываться). Выход: выход из программы. Меню "Вид"Здесь можно выбрать тип сообщений для отображения. Обычно просматриваются только "сообщения об ошибках". Меню "Параметры"Фильтровать записи: Скрытие/отображение нежелательных записей. Загрузить файл фильтрации записей: Загрузка файла фильтрации записей. Экспортировать файл фильтрации записей: Сохранение файла фильтрации записей. Отображать только записи с названием приложения в поле StackTrace: При этом уменьшится число отображаемых нежелательных записей. Однако поскольку анализатор Standard User Analyzer проверяет только первые 32 кадра стека, при включении этой опции могут быть отфильтрованы реальные проблемы, если глубина стека вызова составляет более 32 кадров. Ведение журнала: Настройки журнала. Рекомендуется не ставить флаг в поле "Информация", чтобы файл журнала не был слишком большим. Поддержка механизма справкиКорпорация Майкрософт твердо намерена обеспечивать качество технологий справки и поддержки платформы Windows и будет и дальше рассматривать новые решения для разработчиков ПО. В этом документе приводится уточненная информация по поддержке четырех технологий справки в Microsoft Windows Vista: Windows Help, HTML Help 1.x, Центр справки и поддержки, и клиенту платформы Assistance Platform. Формат Windows Help (WinHelp.exe & WinHlp32.exe)Windows Help (WinHelp.exe и WinHlp32.exe) - оригинальный механизм справки Windows, начиная с версии Windows 3.1. Windows Help требуется для отображения файлов справки с расширением .HLP. Формат Windows Help убран из Windows Vista. Справка Windows не поддерживается в версии Beta 2, в финальной версии удалена часть кода справки Windows. Для просмотра файлов справки с расширением .HLP в Windows Vista необходимо загрузить и установить файл WinHlp32.exe из Центра загрузки Майкрософт. Данный файл нельзя загрузить для версии Beta 2. Корпорация Майкрософт настоятельно рекомендует разработчикам ПО прекратить использовать формат Windows Help в Vista. Разработчикам, программы которых используют файл .HLP, рекомендуется перевести справку в другой формат, например, CHM, HTML или XML. Также необходимо изменить структуру вызовов из WinHelp() API с учетом нового источника данных. Существует несколько средств сторонних производителей, которые могут помочь в преобразовании наполнения из одного формата в другой. HTML Help 1.x (HH.exe)Microsoft HTML Help 1.x (HH.exe) - справочная система, используемая в Windows, начиная с версии Windows 98. HTML Help требуется для отображения скомпилированных файлов справки с расширением .CHM. HTML Help поддерживается в Windows Vista. Однако в механизм будут внесены лишь необходимые изменения. Никакие новые функции и улучшения в механизм HTML Help в Windows Vista и будущих версиях Windows добавляться не будут. Более подробную информацию по формату HTML Help, а также рекомендации по созданию файлов в формат HTML Help, можно найти на веб-узле пакета Help 1.4 SDK (http://msdn2.microsoft.com/library/ms670169.aspx). (EN) Центр справки и поддержки (HelpCtr.exe)Центр справки и поддержки (HelpCtr.exe) представляет собой справочное приложение для Windows XP и Windows Server 2003. Центр справки и поддержки отображает скомпилированные файлы справки с расширением .CHM. Центр справки и поддержки не входит в состав Windows Vista, и его функции не поддерживаются. Скомпилированные файлы справки с расширением .CHM отображаются только в справочном приложении HTML Help, как описано выше. Клиент Assistance Platform (HelpPane.exe)Клиент Assistance Platform (HelpPane.exe) представляет собой новый механизм справки для Windows Vista. Он не поддерживает предыдущие версии Windows. Клиент Assistance Platform необходим для отображения файлов справки для файлов с расширением .H1S. ОЕМ-компании, системные интеграторы и корпоративные пользователи могут настраивать клиент Assistance Platform в Windows Vista по лицензионному соглашению. Другие программы не могут его использовать. Дополнительную информацию по настройке клиента Assistance Platform можно найти в пакете Windows SDK. Дополнительная информация |