средство проверки регистрации обработчиков url приложения что это

Добавление поддержки приложений для веб-сайтов, использующих обработчики URI приложений

Приложения для веб-сайтов связывают ваше приложение с веб-сайтом, чтобы при переходе по ссылке на ваш веб-сайт вместо открытия браузера запускалось ваше приложение. Если ваше приложение не установлено, ваш сайт откроется в браузере, как обычно. Пользователи могут доверять такому подходу, поскольку только проверенные владельцы содержимого могут зарегистрироваться для предоставления ссылки. пользователи смогут проверить все свои зарегистрированные связи между веб-приложениями, перейдя в Параметры приложения приложения >> для веб-сайтов.

Для включения привязки приложения к веб-страницам необходимо выполнить следующие требования.

начиная с обновления «создатели Windows 10» поддерживаемые ссылки, которые были выбраны в Microsoft Edge будет запускать соответствующее приложение. Поддерживаемые ссылки, которые были выбраны в других браузерах (например, Internet Explorer и т. д.), будут работать в режиме обзора.

Регистрация для обработки ссылок вида http и https в манифесте приложения

Ваше приложение должно распознавать URI для веб-сайтов, которые оно будет обрабатывать. Для этого добавьте регистрацию расширения Windows.appUriHandler в файл манифеста вашего приложения Package.appxmanifest.

Например, если адрес вашего сайта — msn.com, следует внести следующую запись в манифест приложения:

Приведенное выше объявления регистрирует ваше приложение для обработки ссылок, относящихся к указанному узлу. Если у вашего сайта несколько адресов (например, m.example.com, www.example.com и example.com), добавьте отдельную запись в разделе для каждого адреса.

Связывание приложения и веб-сайта в JSON-файле

Для обеспечения возможности открытия расположенного на сайте содержимого вашим приложением добавьте имя семейства пакетов вашего приложения в JSON-файл, расположенный в корневом каталоге вашего веб-сервера или в известном каталоге в домене. Это указывает, что ваш сайт дает согласие на открытие содержимого в перечисленных приложениях. Имя семейства пакетов можно найти в разделе Packages в конструкторе манифеста приложения.

Windows установит https-соединение с вашим сайтом и будет искать соответствующий JSON-файл на вашем сервере.

подстановочные знаки;

В приведенном выше примере JSON-файла демонстрируется использование подстановочных символов. Подстановочные символы позволяют поддерживать разнообразные ссылки, используя меньше строк кода. Привязка приложений к Интернету поддерживает два типа подстановочных символов в файле JSON:

Подстановочный знакОписание
*Представляет любую подстроку
?Представляет единичный символ

Несколько приложений

Если вы хотите привязать к своему сайту два приложения, укажите оба имени семейства пакетов приложения в вашем JSON-файле windows-app-web-link. Возможна поддержка обоих приложений. Пользователю будет предлагаться выбрать способ открытия ссылки по умолчанию, если установлены оба приложения. если вы хотите изменить ссылку по умолчанию позже, они смогут изменить их в Параметры приложений для веб-сайтов. Разработчики также могут изменить файл JSON в любое время, и изменения могут вступить в силу в тот же день, но не позднее чем через 8 дней после обновления.

Для обеспечения наилучшего взаимодействия пользователя с приложением используйте пути исключений, чтобы предотвратить обращение к доступному только через Интернет содержимому в поддерживаемых путях в файле JSON.

Пути исключений проверяются в первую очередь, и, если обнаруживается соответствие, эта страница будет открыта в браузере, а не в заданном приложении. В приведенном выше примере «/Невс/*» включает все страницы по этому пути, а «/Невс *» (без прямой косой черты «Новости») включает в себя любые пути в разделе «Новости *», такие как «невслокал/», «невсинтернатионал/» и т. д.

Обработка ссылок на активацию для привязки ссылки к содержимому

Перейдите к файлу App.xaml.cs в вашем проекте Visual Studio и добавьте обработку связанного содержимого в разделе OnActivated(). В следующем примере страница, открываемая в приложении, зависит от URI:

Тестирование: локальное средство проверки

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

%WINDIR%\system32\AppHostRegistrationVerifier.exe

Проверяйте конфигурацию своего приложения и веб-сайта путем запуска этого средства со следующими параметрами:

AppHostRegistrationVerifier.exehostname packagefamilyname filepath

Если средство ничего не возвращает, проверки будут работать для этого файла при отправке. Если возникает код ошибки, функция не будет работать.

Можно использовать следующий раздел реестра для принудительной проверки соответствия путей для неопубликованных приложений в рамках локальной проверки.

KeyName: ForceValidation значение: 1

Тестирование: проверка в Интернете

Закройте свое приложение, чтобы убедиться, что приложение запускается, когда вы нажимаете на ссылку. Затем скопируйте адрес одного из поддерживаемых путей на вашем веб-сайте. Например, если адрес веб-сайта — «msn.com», а один из путей поддержки — «path1», можно использовать http://msn.com/path1

Убедитесь, что ваше приложение закрыто. Нажмите клавишу Windows + R, чтобы открыть диалоговое окно Выполнить, и вставьте ссылку в этом окне. Вместо браузера должно запуститься ваше приложение.

Кроме того, можно протестировать приложение, запустив его из другого приложения с помощью API LaunchUriAsync. Можно также использовать этот API для тестирования на телефонах.

Если вы хотите отслеживать логику активации протокола, установите точку останова в обработчике событий OnActivated.

Источник

Что такое AppHostRegistrationVerifier.exe? Это безопасно или вирус? Как удалить или исправить это

Что такое AppHostRegistrationVerifier.exe?

AppHostRegistrationVerifier.exe это исполняемый файл, который является частью Windows 10 (Mulitple Editions) разработанный Microsoft, Версия программного обеспечения для Windows: 1.0.0.0 обычно 105472 в байтах, но у вас может отличаться версия.

средство проверки регистрации обработчиков url приложения что это. virus malware. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-virus malware. картинка средство проверки регистрации обработчиков url приложения что это. картинка virus malware.

AppHostRegistrationVerifier.exe безопасный или это вирус или вредоносное ПО?

Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, для AppHostRegistrationVerifier.exe его путь будет примерно таким: C: \ Program Files \ Microsoft \ Windows 10 (несколько выпусков) \ AppHostRegistrationVerifier.exe

Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.

Наиболее важные факты о AppHostRegistrationVerifier.exe:

Если у вас возникли какие-либо трудности с этим исполняемым файлом, вы должны определить, заслуживает ли он доверия, прежде чем удалять AppHostRegistrationVerifier.exe. Для этого найдите этот процесс в диспетчере задач.

Найти его местоположение и сравнить размер и т. Д. С приведенными выше фактами

Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус AppHostRegistrationVerifier.exe, необходимо скачайте и установите приложение полной безопасности, как это, Обратите внимание, что не все инструменты могут обнаружить все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.

Могу ли я удалить или удалить AppHostRegistrationVerifier.exe?

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

Однако, если это не вирус, и вам необходимо удалить AppHostRegistrationVerifier.exe, вы можете удалить Windows 10 (Mulitple Editions) с вашего компьютера, используя программу удаления. Если вы не можете найти его деинсталлятор, вам может потребоваться удалить Windows 10 (Mulitple Editions), чтобы полностью удалить AppHostRegistrationVerifier.exe. Вы можете использовать функцию «Установка и удаление программ» на панели управления Windows.

Распространенные сообщения об ошибках в AppHostRegistrationVerifier.exe

Наиболее распространенные ошибки AppHostRegistrationVerifier.exe, которые могут возникнуть:

• «Ошибка приложения AppHostRegistrationVerifier.exe».
• «Ошибка AppHostRegistrationVerifier.exe».
• «AppHostRegistrationVerifier.exe столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».
• «AppHostRegistrationVerifier.exe не является допустимым приложением Win32».
• «AppHostRegistrationVerifier.exe не запущен».
• «AppHostRegistrationVerifier.exe не найден».
• «Не удается найти AppHostRegistrationVerifier.exe».
• «Ошибка запуска программы: AppHostRegistrationVerifier.exe».
• «Неверный путь к приложению: AppHostRegistrationVerifier.exe».

Как исправить AppHostRegistrationVerifier.exe

Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс AppHostRegistrationVerifier.exe на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.

Обновлен декабрь 2021:

Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:

Загрузите или переустановите AppHostRegistrationVerifier.exe

Вход в музей Мадам Тюссо не рекомендуется загружать заменяемые exe-файлы с любых сайтов загрузки, так как они могут содержать вирусы и т. д. Если вам нужно скачать или переустановить AppHostRegistrationVerifier.exe, мы рекомендуем переустановить основное приложение, связанное с ним. Windows 10 (Mulitple Editions).

Представляем выпуски Windows 10

Выпуски Windows 10. Windows 10 имеет двенадцать выпусков, все с различными наборами функций, вариантами использования или предполагаемыми устройствами. Некоторые выпуски распространяются только на устройствах напрямую от производителя устройства, в то время как такие выпуски, как Enterprise и Education, доступны только по каналам корпоративного лицензирования.

Информация об операционной системе

Ошибки AppHostRegistrationVerifier.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

Источник

Как изменить обработчик протокола URL ( tel, mailto, callto ) в Windows 10

В этой статье будет описано, как в Windows 10 настроить приложение для открытия ссылок URL (tel, mailto, callto и т.д.) в браузере.

Например, сделать так, чтобы при нажатии на телефонный номер на сайте открывался софтфон phonerlite.

Также будет показан общий принцип добавления и изменения приложения по умолчанию через реестр в Windows 10.

Содержание

Введение

Задача следующая:

Существует отдел продаж, который использует в своей работе ip-телефонию. В качестве телефонов используют софтфоны (Softphone) phonerlite и microsip. Также нужно, чтобы у менеджера при нажатии на телефонный номер на сайте клиента открывалось окно с выбором софтфона, а после выбора выполнялся вызов на этот номер.
Казалось бы, что тут сложного. Выбираем приложение для протокола tel и всё. Но в Windows 10 при выборе приложения отсутствуют установленные софтфоны.

средство проверки регистрации обработчиков url приложения что это. PhonerLite Tel Default2 500x319 equal. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-PhonerLite Tel Default2 500x319 equal. картинка средство проверки регистрации обработчиков url приложения что это. картинка PhonerLite Tel Default2 500x319 equal. PhonerLite Default Tel

При изучении вопроса оказалось, что не все приложения (не только софтфоны) корректно заносят данные в реестр.

В этой статье приведем пример, как добавить софтфон PhonerPhone в список приложений для выбора протокола tel для браузера Chrome.

Описание тестового стенда

План работ. Краткое описание действий

Установка и настройка софтфона PhonerLite

Подробно описывать установку softphone PhonerLite в данной статье не будем, там все очень тривиально. Если с этим возникнут проблемы, можете обратиться к нашей статье Обзор и основные возможности софтфона PhonerLite.

Отметим один важный момент. В настройках софтфона PhonerLite есть выбор «Обработчика протокола URL«, можно выбрать: tel:, sip:, callto:, hungup:. При выборе вносятся изменения в реестр. Как выяснилось, изменения не совсем корректные. Работать будет, но только с одним софтфоном. Этим способом не получится добавить в меню «Как вы хотите это открыть?» несколько приложений, например: phonerlite, microsip и blink.
Поэтому рекомендуем внести изменения в реестр самим.

Регистрация в реестре программы для обработчика протокола URL

Добавление ProgID

В нашем примере мы добавили:

Добавление Capabilities (возможностей приложения)

Регистрация возможностей приложения [HKEY_CURRENT_USER\Software\RegisteredApplications]

В заключении нужно добавить наше приложение PhonerLite в список программ по умолчанию.

Полный текст reg файла для добавления приложения PhonerLite в список приложений по умолчанию.

Для удобства предлагаем создать файл phonerUrlTel.reg и записать туда данный текст.

После этого запустить данный файл (понадобятся права администратора) и данные будут записаны в реестр.

Проверка того, что приложение PhonerLite появилось в списке приложения по умолчанию для протокола tel

Для проверки откроем браузер Chrome и в адресной строке введем tel:+788888888888 (номер для примера).

средство проверки регистрации обработчиков url приложения что это. PhonerLite Tel 500x260 equal. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-PhonerLite Tel 500x260 equal. картинка средство проверки регистрации обработчиков url приложения что это. картинка PhonerLite Tel 500x260 equal. PhonerLite Default Tel:

Нажимаем «Выбор приложения» и в открывшемся окне, после наших настроек, появилось приложение PhonerLite.

средство проверки регистрации обработчиков url приложения что это. PhonerLite Tel Default1 500x350 equal. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-PhonerLite Tel Default1 500x350 equal. картинка средство проверки регистрации обработчиков url приложения что это. картинка PhonerLite Tel Default1 500x350 equal. PhonerLite Default Tel:

Выбираем его и видим, что открылся софтфон и в нем выполняется исходящий вызов по номеру +788888888888

средство проверки регистрации обработчиков url приложения что это. PhonerLite Tel Default 500x505 equal. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-PhonerLite Tel Default 500x505 equal. картинка средство проверки регистрации обработчиков url приложения что это. картинка PhonerLite Tel Default 500x505 equal. PhonerLite Default Tel:

Задачу выполнили. Теперь по нажатию на телефонный номер в браузере (где протокол tel:) выполняется вызов через приложение PhonerLite.

Источник

Application Verifier для программиста: тестирование Windows-приложений

Возможно в Вашем проекте и не пишут try < /* code */ >catch (. ) < >для того чтобы избежать исключений при работе с памятью, умеют закрывать хендлы и знают о виртуализации Windows Vista, а программы никогда не падают по непонятным и редко повторяемым причинам.

Тогда Вам повезло, можете переходить к следующему топику.

Но иногда происходят, казалось бы, странные вещи. Программа «падает» на ровном месте, память куда-то утекает, а еще один раз вам звонили с жалобой на странное поведение программы, работающей на сервере 24/7, но вы конечно «завернули» их проблему, убедив, что она аппаратно-зависимая, и ладно. Всё-таки разработка программ под Windows дело нередко хитрое, и от ошибок по невнимательности или из-за незнания архитектуры никто не застрахован. Я не буду учить, как этих ошибок не допускать — сам не знаю. Но вот одно средство для эффективной отладки могу посоветовать.

Речь пойдет о Microsoft Application Verifier. Но это не отладчик. Напротив, без отладчика, сама по себе, штука относительно бесполезная. А вот в совокупности с ним позволяет детектировать ряд важных платформо-зависимых проблем. Кроме того, не удастся получить сертификат «Сompatible with windows 7» без прохождения тестирования с использованием AppVerifier (собственно для “Vista Certified” так же, но об этом, видимо, говорить не принято). А этот сертификат — для пользователя некоторая гарантия, что получившая его программа, может лучше и не сделает, но хотя бы не навредит. Ладно, «вода» закончилась, приступим к делу.

Способ применения

Скачать и установить AppVerifier для Хаброчеловека, уверен, не сложность. Запустим (из под real-администратора, под Vista+ по-другому и не выйдет) его графическую оболочку:

средство проверки регистрации обработчиков url приложения что это. image loader. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-image loader. картинка средство проверки регистрации обработчиков url приложения что это. картинка image loader.

Слева список приложений для тестирования; справа – список секций на проверку для выбранного приложения. В MSDN утверждается, что AppVerifier предназначен для тестирования программ на C++, но в целом применим для любого native кода.

Графическая оболочка не производит никаких тестов, только дает возможность выбора нужных пунктов. Сами проверки реализуются благодаря так называемым «слоям», динамически подключаемым библиотекам vfbasics, vfcompat, vfLuaPriv, vfprint (на них можно полюбоваться в папке system32 ). При запуске тестируемого приложения они подключаются к нему и перехватывают вызов системных функций, таких как HeapAlloc, GetTickCount, CloseHandle и многих других. Перехватчик производит ряд дополнительных проверок, затем вызывает оригинальную функцию, и поэтому, за исключением нескольких рассматриваемых далее случаев, это не скажется на работе тестируемого приложения. Разве что будет заметна некоторая потеря производительности. Субъективно в худшем случае программа «замедлится» в пять раз, а нужны ли какие-нибудь конкретные цифры или нет – оставлю на ваше усмотрение.

Здесь есть важная особенность: несмотря на то, что мы при добавлении выбираем файл тестируемого приложения, проверки привязываются только к его имени без пути. С одной стороны, можно не беспокоиться в какой конфигурации (и в какую папку) собирать проект (обычно папки для Debug и Release разные), но с другой – можно забыть об установленных проверках, и запуская программу с рабочего стола, удивляться, что она «не работает».

Про смысл тест-пунктов поговорим чуть позже, а сейчас добавим, к примеру notepad.exe и установим все галки. Запустим блокнот, добавим пару строчек, попробуем сохранить. О-па, неудача:

средство проверки регистрации обработчиков url приложения что это. image loader. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-image loader. картинка средство проверки регистрации обработчиков url приложения что это. картинка image loader.

Не единственный исход ситуации, возможно, вы получите другое окно предупреждения, или вообще обойдется без него. Что же случилось? Обратимся снова к графической надстройке AppVerifier. На сей раз выберем пункт Logs из главного меню, увидим список лог-файлов ассоциированных с тестируемыми приложениями. По логу на запуск.

средство проверки регистрации обработчиков url приложения что это. image loader. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-image loader. картинка средство проверки регистрации обработчиков url приложения что это. картинка image loader.

Физически эти лог файлы находятся в папке AppVerifierLogs в корне пользовательского профайла. Прочитать их голыми руками будет трудно (бинарный формат), поэтому тыкаем кнопочку “View” для соответствующего лога. Произойдет его дамп в xml и открытие дефолтной программы просмотра для xml:

средство проверки регистрации обработчиков url приложения что это. image loader. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-image loader. картинка средство проверки регистрации обработчиков url приложения что это. картинка image loader.

Для тех кто внимательно следил: ошибка изображенная на этом скриншоте не соответствует сообщению об ошибке (которе является нормальным поведением программы) с предыдущего скриншота, а происходит чуть позже.

Тут и краткое описание проблемы, и stack trace. И от меня подсказка, как искать ошибки, а не предупреждения. Кстати сказать, если ошибки присутствуют, то программа не получает сертификации на совместимость с Vista/Win7. Постойте, но это же блокнот?! Ну да, только тссс.

Лечение больного

Теперь запускаем отладчик. Пусть это будет отладчик, встроенный в студию, или бесплатный WinDbg из состава Debugging Tools for Windows (он конечно более навороченный, но сейчас это не имеет значения).

А вот и наш больной:

int _tmain( int argc, _TCHAR* argv[])
<
int *p = new int ();
delete p;
*p = 0; // p = 0 will be OK, but *p = 0 is error!
>

Потенциальную опасность этого фрагмента легко оценить, если бы строки с delete и перезаписью памяти были растянуты по времени. Но ни в дебажной, ни в релизной сборке такая проблема не детектируется (Visual Studio, конфигурация по умолчанию).

Теперь добавляем программу на тестирование группы Basics в Application Verifier. И запускаем её из под отладчика (из студии по F5, например). AppVerifier заговорил с нами голосом студии:

средство проверки регистрации обработчиков url приложения что это. image loader. средство проверки регистрации обработчиков url приложения что это фото. средство проверки регистрации обработчиков url приложения что это-image loader. картинка средство проверки регистрации обработчиков url приложения что это. картинка image loader.

А в Debug Output показывается соответствующее структурное исключение:

=======================================
VERIFIER STOP 00000013: pid 0xB54: First chance access violation for current stack trace.

02B59FF8 : Invalid address causing the exception.
0082142F : Code address executing the invalid access.
0013F670 : Exception record.
0013F68C : Context record.

Оно рассказывает, что за исключение (00000013), с каким адресом памяти (02B59FF8) и по какому адресу кода (0082142F) произошло. Счастливчикам, скачавшим Windows Debug Symbols покажут и место в исходном коде, где произошла проблема и Stack Trace, который привел к исключению.

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

Детектируемые проблемы

Давайте теперь разберемся, какие проблемы позволит выявить нам AppVerifier. Все опции тестирования разделены на группы. Исключая группу «Low Resource Simulation» и тестов «TimeRollOver» и «HighVersionLie» проверки не меняют поведения приложения (в случае, если не будет обнаружено ошибок).

1. Искажающие проверки
1.1. Low Resource Simulation

Вот она причина падения блокнота. Тесты этой группы позволяют смоделировать поведение системы при нехвате ресурсов. Приложению запросто могут отказать (по датчику случайных чисел) в выделении памяти, создании файла, Event’а, окна, записи в реестр. Обычно есть некоторое «спокойное» время около 2-5 секунд, когда приложению разрешается пользоваться ресурсами в полную силу; сделано это, чтобы приложение вообще смогло запуститься (это придумали не так давно, раньше было грустнее). Нормальным поведением программы является стабильность; показ предупреждающих диалогов, но не «падения». Так что в коде нужно бы предусматривать данные ситуации.

1.2. TimeRollOver в группе Misc

DWORD time_end = GetTickCount() + 1000; // 1s timelimit
do < action(); >while (GetTickCount()

И это не единственный случай, что Вы скажете про следующий фрагмент?

Для диагностики подобных проблем проверка TimeRollOver «прогоняет» значение функции GetTickCount() быстрее. Полный цикл до обнуления значения проходит за 5 минут.

1.3. HighVersionLie в группе Compatibility

OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof (OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
GetVersionEx(&osvi);

BOOL bIsWindowsXP_or_Later = (osvi.dwMajorVersion >= 5) && (osvi.dwMinorVersion >= 1);
if (!bIsWindowsXP_or_Later)
printf( «Windows XP or later required.\n» );

В данном фрагменте допущена явная ошибка; с целью отсечь Windows 2000 (5.0) вводится дополнительная проверка на minor версию XP (5.1), но код также отбрасывает и Windows Vista (6.0). На Windows 7 (6.1) работать будет. Неужели это и есть причина плохой совместимости с Windows Vista? Microsoft утверждает, что 70% несовместимых с Vista программ не работают в том числе и из-за этой проблемы.

Но диагностика такой ситуации на компьютере разработчика затруднительна — у него одна, фиксированная версия ОС. Можно воспользоваться виртуальной машиной с другой версией ОС, а можно просто ткнуть галку HighVersionLie. Тогда значение GetVersionEx будет модифицировано (обычно по правилу dwMajorVersion += 3; dwMinorVersion = 0 ).

2. Немодифицирующие проверки
2.1. Memory в группе Basics

Проверка корректности вызовов HeapAlloc, GlobalAlloc и других API Windows Heap Manager. За утечками памяти не следит, но это можно решить другими способами.

2.2. TLS в группе Basics

Следит за корректностью вызовов Thread Local Storage API.

2.3. Exceptions в группе Basics

Следит за уместностью перехвата исключений, в частности попытки «заглушить» исключения Access Violation, «демаскирует» исключения в заглушках вида try < >catch (. ) < >.

2.4. Handles в группе Basics

Следит за допустимостью операций над хендлами, корректностью хендлов и их временем жизни. Чуть подробнее на английском.

2.5. Locks в группе Basics

Проверяет корректность использования критических секций, не допускает сброс критической секции из другого потока относительно установки критической секции.

2.6. DirtyStacks в группе Misc

Периодически заполняет неиспользуемую часть стека паттерном 0xCD, что позволяет обнаруживать неинициализированные переменные или параметры функций.

2.7. DangerousAPIs в группе Misc
2.8. LuaPriv

Limited-user-account privileges test. Проверяет, нужны ли программе административные привилегии, не выполняет ли программа действий, которые допустимы только для real-администратора.

Состоит из двух частей: предсказывающей (перечисляет все действия программы, которые может выполнить только администратор) и диагностической (отказывает программе в административных действиях с ошибкой ACCESS_DENIED ). Таким образом, программисту не обязательно тестировать программу отдельно логинясь гостем. Также проверяет ряд особенностей связанных с виртуализацией под Windows Vista и старше.

Заключение

AppVerifier — интересный инструмент, позволяющий выявить и решить ряд «плавающих» и «скрытых» (а иногда и специально спрятанных) проблем. Пользоваться им в целом не сложно, при определнных навыках — удобно. А если вы хотите получить сертификат «Windows compatible», то знакомства с ним не избежать. Лично мне помог уже на двух проектах, надеюсь будет полезен и Вам.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *