Причины проблем совместимости приложений. Совместимость программ

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

Как правило, приложения и аппаратное обеспечение, работающее на Windows Vista, продолжит работать и на Windows 7. В следующем примере показано несколько проблемных областей совместимости приложений Windows 7.

1. Запуск и установка приложения : во время запуска и установки приложения помешать установке должным образом могут две распространенные проблемы:

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

Приложения пытаются сослаться на компоненты Windows, которые в Windows 7 были переименованы.

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

UAC может иметь следующие проблемы совместимости:

Некоторые установщики, деинсталляторы и обновление не будет работать без повышения статуса до администраторского.

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

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

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

DLL библиотеки приложений, которые запускаются с помощью RunDLL32.exe, если они выполняют глобальные операции, могут работать неправильно.

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

3. Windows Resource Protection (WRP) : WRP предназначен для защиты ресурсов Windows (файлов, папок, реестра) в режиме только для чтения. Установщики приложений пытавшиеся заменить, изменить или удалить находящиеся под защитой WRP файлы операционной системы и/или ключи реестра могут вызвать сбой с сообщением об ошибке, указывающем на невозможность обновления ресурса.

4. Защищенный режим Internet Explorer : Защищенный режим Internet Explorer помогает защититься от атак с несанкционированным получением прав, ограничивая возможность записи для любой зоны ресурсов локального компьютера, за исключением временных файлов Интернета.

Приложения, использующие Internet Explorer и пытающиеся сделать запись непосредственно на диск во время нахождения в Интернете или интрасети, могут вызвать сбой.

5. 64-битная архитектура : Windows 7 полностью поддерживает 64-битную архитектуру. Приложения или компоненты, использующие 16-битные исполняемые файлы, 16-битные установщики или 32-битные драйвера ядра, могут вызвать сбой при запуске или будут неправильно функционировать.

6. Windows Filtering Platform (WFP) : WFP интерфейс прикладного программирования (API), позволяющий разработчикам создавать код, взаимодействующий с фильтрацией, происходящей на нескольких уровнях сетевого режима и во всей операционной системе. Если вы в своей системе пользуетесь предыдущей версией API, у вас могут возникнуть сбои при работе приложений связанных с безопасностью, таких как сканеры сети, антивирусные программы или фаерволы.

7. Изменение версии операционной системы : номер версии операционной системы изменяется с каждым новым релизом. Для Windows Vista внутренний номер версии - 6, в то время как у Windows 7 внутренний номер версии - 6.1.

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

8. Драйвера ядра: драйвера ядра должны поддерживать операционную систему Windows 7 или быть обновлены с помощью User-Mode Driver Framework (UMDF). UMDF - это платформа усовершенствования драйверов устройств, которая была введена в Windows Vista.

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

Режимы совместимости Windows

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

Что нужно знать о данных режимах? Наверное то, что среди доступных режимов Вы не найдете операционные системы не из семейства Windows. А так же то, что Вы можете только эмулировать среду предыдущих операционных систем линейки Windows. Например, на Windows 7 возможно воспроизвести среду операционных систем от Windows 95 до самой 7-ки. Восьмёрки тут нет.

Где произвести настройку совместимости программы?

Возможность настройки совместимости для программ находится в свойствах.exe-файла, на вкладке Совместимость . Такую вкладку Вы можете найти только в свойствах.exe-файлов. Поэтому, чтобы настроить совместимость программы, Вам нужно добраться до самого.exe-файла. А для этого, Вам нужно установить данное приложение на компьютер. Найти необходимый.exe-файл можно пройдя по адресу, который прописан в свойствах ярлыка установленного приложения. Если приложение не требует установки, то поиск нужного.exe-файла упрощается.

Как произвести автоматическую настройку совместимости программы с операционной системой?

В данной статье будет рассмотрена только автоматическая настройка совместимости приложения с операционной системой. Статью про ручную Вы можете найти по ссылке. При автоматической настройке совместимости программы операционная система сама проводит анализ программы и выставляет необходимые для его правильного запуска параметры. Чтобы запустить автоматическую настройку, нужно на вкладке Совместимость нажать кнопку Запустить средство устранения проблем с совместимостью. После небольшой проверки Вы увидите следующее окно:


Тут Вам предложены два варианта режима диагностики. Первый из данных режимов предоставит Вам список предложенных операционной системой параметров, с использованием которых нужно запустить программу для её совместимости. В этом окне Вы сможете протестировать программу с заданными параметрами, и, если всё работает, попросить операционную систему запомнить данную конфигурацию и использовать их при каждом новом запуске данной программы. Данный вариант является самым легким и спокойным. Вы просто проверите ту конфигурацию, которую предложило средство устранения проблем совместимости программ.

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

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

Аннотация
Если во время тестирования приложения были выявлены возможные проблемы его совместимости с операционной системой Microsoft® Windows® XP, необходимо найти решение, которое позволило бы этому приложению работать должным образом. Такие решения проблем совместимости можно собрать в оболочки совместимости и распространить с помощью инструмента Администратор совместимости.

На этой странице

Введение

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

Администратор совместимости

После установки группы необходимых исправлений совместимости, Вы можете воспользоваться Администратором совместимости, чтобы скомпоновать исправления совместимости для распространения на других компьютерах, работающих под управлением Windows XP.

Создание собственных оболочек совместимости с помощью Администратора совместимости

В этом разделе обсуждается как можно создавать и подготавливать файлы собственной базы данных с помощью Администратора совместимости, для поддержания множества приложений на одном или нескольких компьютерах, работающих под управлением Windows XP.

Администратор совместимости может компоновать исправления и оболочки совместимости для множества приложений в один файл базы данных совместимости (*.sdb), который потом может быть перенесен на другие компьютеры, работающие под управлением Windows XP. Это особенно полезно в большом сетевом окружении, где несколько человек должны обеспечивать поддержку программного обеспечения огромному числу пользователей.

Установка Администратора совместимости

Администратор совместимости, поставляемый с операционной системой Windows XP, может быть найден в папке Support Tools на установочном компакт-диске. Администратор совместимости распространяется как часть Пакета средств обеспечения совместимости приложений (Application Compatibility Toolkit) версии 2.0 и выше.

Для установки Пакета средств обеспечения совместимости приложений (Application Compatibility Toolkit) в Вашей ОС Windows XP:

  1. Вставьте установочный компакт-диск Windows XP в привод компакт-дисков
  2. Используя Мой компьютер (My Computer ) или Проводник (Windows Explorer) , перейдите на привод, в который Вы вставили диск с ОС Windows XP, и откройте папку Support Tools.
  3. Щелкните дважды файл ACT. EXE для начала установки программы. Примите настройки, предложенные по умолчанию программой установки.

После установки Пакета средств обеспечения совместимости приложений (Application Compatibility Toolkit) его можно будет найти в меню Пуск . Администратор совместимости находится в группе Пакета средств обеспечения совместимости приложений (Application Compatibility Toolkit) в меню Пуск.

Использование Администратора совместимости

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

Четыре библиотеки DLL содержат все исправления совместимости
Четыре библиотеки DLL, расположенные в папке % WINDIR% AppPatch, содержат все исправления совместимости. Файлы APPHELP.SDB и SYSMAIN.SDB обеспечивают работу справочных сообщений приложений, а исправления приложений являются частью Windows XP.

Справочные сообщения приложений содержат информацию, которая отображается при запуске действительно несовместимого с Windows XP приложения. Примеры приложений, которые могут вызвать появление Справочных сообщений приложений, включают:

  • Антивирусные программы
  • Программы, которые требуют доступа на уровне ядра операционной системы
  • Программы, которые устанавливают специфические драйверы файловой системы

Причины неправильной работы приложений
Приложения, которые были созданы для работы с предыдущими версиями Windows, могут неправильно работать в ОС Windows XP Professional. Причины, по которым это может происходить:

  • Приложение не запускается, когда Windows сообщает ему о новой версии операционной системы. Зачастую приложение работает нормально, если пользователь сможет обойти этот момент.
  • Приложение обращается к старым версиям функций Win32 API, которые возвращают непредсказуемые значения на компьютерах с большим количеством ресурсов, таких как дисковое пространство
  • Приложение ожидает старых форматов данных Windows.
  • Приложение ожидает, что информация пользователя, такая как личные и временные папки, будет в определенном месте или в определенном формате.

Для устранения этих проблем с помощью Администратора совместимости Вам необходимо создать собственную базу данных, содержащую информацию об исправлениях совместимости, необходимую Вашим приложениям, а также информацию о соответствии файлов, которая позволяет Windows XP однозначно распознать приложение, требующее поддержки.

Создание собственной базы данных совместимости

Администратор совместимости позволяет Вам просматривать исправления совместимости приложений, хранящиеся в защищенных системой базах данных, чтобы применять нужные исправления для сотен приложений. Основной интерфейс Администратора позволяет контролировать приложения с исправлениями совместимости путем просмотра их в базе данных ОС Windows XP Professional. Эта информация отображается в верхней левой части (части системной базы данных) окна Администратора совместимости.

Системная база данных совместимости является составляющей операционной системы Windows XP Professional, обеспечивающей идеальную совместимость для сотен Windows-приложений. Эта база данных и соответствующие компоненты защищены операционной системой.

Как только Вы определили и проверили исправления для определенного приложения, можно запустить Администратор совместимости для создания базы данных исправлений. Вы можете создать базу данных, которая содержит приложения, поддерживаемые оболочками совместимости, или приложения, поддерживаемые определенными исправлениями совместимости.

Чтобы создать новую собственную базу данных с помощью Администратора совместимости:

  1. Откройте Администратор совместимости выбрав в меню Пуск (Start) , Программы(All Programs) , Пакет средств обеспечения совместимости приложений (Application Compatibility Toolkit) , Администратор совместимости
  2. Если у Вас открыта собственная база данных, в меню Файл (File) выберите Новый (New) .
  3. Зайдите в меню База данных (Database) и нажмите Изменить название базы данных (Change Database Name ) . Как только Вы измените название базы данных, оно будет отображаться в заголовке собственной базы данных. Если пункт меню Изменить имя базы данных (Change Database Name ) не активен, щелкните по области базы данных окна.
  4. В меню Файл (File) нажмите Сохранить (Save) и дайте название своему.sdb файлу. Теперь можно добавить исправления в Вашу собственную базу данных.

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

Для добавления оболочки совместимости

  1. Выберите Создать исправление приложения (Create Application Fix ) в меню База данных. Появится диалоговое окно Создание исправления приложения (Create an Application Fix ) .
  2. Выберите Применить режим совместимости (Apply Compatibility Mode ) и нажмите кнопку Далее (Next) .
  3. Введите название приложения, для которого Вы будете определять режим совместимости, и нажмите кнопку Далее(Next) .
  4. Введите название файла, к которому будет применен режим совместимости. Вы можете набрать название файла вручную или использовать кнопку Обзор (Browse) , чтобы указать его.
  5. Выберите из выпадающего списка режим совместимости, который нужно применить, и нажмите Далее (Next) .
  6. Нажмите кнопку Добавить файл (Add File) , чтобы выбрать файлы, которые помогут точно определить нужный файл на целевых компьютерах (Выберите файлы, связанные с приложением, которые будут установлены в то же место. Например, выберите файл.hlp, находящийся в одной папке с.exe файлом. Постарайтесь однозначно определить Ваш файл, не выбирая большое количество соответствующих файлов).
  7. Когда выберете все необходимые файлы, нажмите Далее (Next) .
  8. Если Вы хотите проверить приложение с примененным исправлением, нажмите Выполнить тестирование (Test Run). В противном случае нажмите Готово (Finish) .

Тот же процесс может быть использован для добавления индивидуальных исправлений совместимости в собственную базу данных, за исключением того, что в окне Создать исправление приложения (Create an Application Fix ) Вы должны выбрать вариант Применить определенное исправление совместимости (Apply Specific Compatibility Fix ). Как только всеисправления и оболочки будут добавлены в базу данных, сохраните базу данных и проверьте приложение.
Совпадение имен файлов

Применение собственной базы данных к системе

Как только Вы создали Вашу собственную базу данных исправлений совместимости приложений, она должна быть применена к системе компьютера, на котором это приложение будет работать. Общий процесс развертывания исправлений совместимости на нескольких компьютерах под управлением Windows XP включает следующие действия:

  • Определите и проверьте исправления для необходимых приложений.
  • Создайте файл выборочной базы данных с нужными исправлениями.
  • Перенесите.sdb файл на нужные компьютеры под управлением Windows XP.
  • Используйте команду SDBINST.EXE, чтобы зарегистрировать базу данных. Она автоматически установит и добавит информацию об исправлениях в реестр на выбранных компьютерах.

Перенос файла собственной базы данных на другие компьютеры под управлением Windows XP
Перенос файла собственной базы данных на другие компьютеры под управлением Windows XP может быть проведена разными способами:

  • Можно поместить файл базы данных в программу установки и распространить его с помощью Групповой политики в сети с Active Directory, но это требует дополнительной работы.
  • Файл может быть скопирован вручную на каждый удаленный компьютер, или это можно сделать с помощью сценария входа в систему.
  • Еще одной возможностью является размещение файла.sdb на общем сетевом ресурсе, к которому имеют доступ все пользователи Windows XP.

Несмотря на то, что файл перенесен на удаленные компьютеры, содержащаяся в нем информация должна быть зарегистрирована на каждом компьютере. Это делается с помощью запуска команды SDBINST.EXE из командной строки, за которой следует полный путь и имя созданного.sdb файла. Например:

Sdbinst c:WindowsAppPatchmyapp.sdb

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

Заключение

Windows XP предоставляет улучшенную поддержку приложений по сравнению с предыдущими версиями операционных систем Windows. Помимо встроенной поддержки для решения огромного разнообразия известных проблем совместимости приложений, новые средства, включая Пакет средств обеспечения совместимости приложений (Application Compatibility Toolkit), позволяют системным администраторам осуществлять поддержку всех их приложений.
Администратор совместимости является инструментом из Пакета средств обеспечения совместимости приложений. Администратор совместимости позволяет системным администраторам брать информацию, полученную путем тестирования, и упаковывать её в индивидуальную базу данных совместимости. Эта база данных может использоваться для поддержки множества приложений, и может быть легко распространена на другие компьютеры, нуждающиеся в исправлениях совместимости. Для регистрации файла базы данных совместимости на удаленных компьютерах используется команда SDBINST.EXE, после чего информация будет доступна в Windows XP каждый раз при запуске приложения.

Проблема совместимости программ — это всегда проблема, особенно когда новая операционная выходит с новым ажиотажем. Это был кошмар для многих пользователей Vista, даже заставила многих пользователей Vista, чтобы вернуться к XP,что бы запускать свои любимые программы и игры.Похоже, Microsoft извлекла урок из Vista совместимости программ , и они ввели новый Мастер для решения вопросов совместимости в Windows 7 . Нет больше таких кошмаров в Windows 7 ,так как в Windows 7 есть инструмент устранения проблем с совместимостью программ .Чтобы запустить средство устранения проблем с совместимостью Windows wizard, введите в окно поиска Action Center » в меню » Пуск » и нажмите enter. Затем в левой панели Action Center, нажмите на ссылку — средство устранения , чтобы запустить мастер устранения неполадок. Нет больше таких кошмаров в Windows 7 , благодаря мастеру совместимости программ, что помогает решить большинство проблем совместимости Windows .

Первое, что нужно сделать, когда вы запустите средство устранения проблем с совместимостью Windows , является выбор между расширенным и нормальным режимами,чтобы идти дальше. Хотя мастер совместимости программ начинает работать с основным режимом по умолчанию,и это хорошо,откройте » расширенные параметры » в нижней части окна, чтобы получить больше настроек для устранении неполадок .

В окне поставьте галочку в поле “Дополнительные параметры”. Как только вы закончите, вы можете просто нажать кнопку Next и подождите, пока Windows создаст список программ после завершения процесса сканирования.

Если программа не указана в сформированном списке,выберите “Нет» в списке,чтобы продолжить.D новом окне нажмите кнопку обзор, и найдите EXE-файл из установленного программного обеспечения(как правило, C:\Program Files).

Нажмите кнопку » Далее » и выберите соответствующую проблему из списка » Доступные». Windows попытается исправить ошибку, и выдаст результат через несколько секунд. Опять же, если ваши беды по прежнему существуют,выберите вариант “Будет попробовать различные настройки” и повторите процедуру с другими возможными проблемами .В качестве альтернативы, вы можете также выбрать ярлык — Метод решения вашей проблемы.

*Щелкните правой кнопкой мыши на инсталлятор программы и выберите “Свойства”.

*Перейдите на вкладку “Совместимость”.

*Теперь,включите опцию “Запустить программу в режиме совместимости с: и выберите операционную систему “Windows 7”.

*Нажмите кнопку “Применить”.

*Запустите установщик для установки программного обеспечения.

Основными причинами, вызывающими нарушения нормального функционирования ПО, являются:

Ошибки, скрытые в самой программе;

Искажение входной информации;

Неверные действия пользователя;

Неисправность аппаратных средств ИС, на которой реализуется вычислительный процесс.

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

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

Логические ошибки. Эта группа ошибок является причиной искажения алгоритма решения задачи. К ошибкам подобного рода можно отнести неверную передачу управления, неверное задание диапазона изменения параметра цикла, неверное условие и другие ошибки.

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

Ошибки манипулирования данными. К числу таких ошибок относятся: неверное определение числа элементов данных; неверные начальные значения, присвоенные данным; неверное указание длины операнда или имени переменной и другие ошибки.

Ошибки совместимости связаны с отсутствием совместимости разрабатываемого или применяемого ПО с операционной системой или другими прикладными программами.

Ошибки сопряжений. группа этих ошибок вызывает неверное взаимодействие ПО с другими программами или подпрограммами, с системными программами, устройствами ЭВМ или входными данными.

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

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

Неисправность аппаратных средств ИС. Эти неисправности оказывают определенное влияние на характеристики надежности ПО. Появление отказов или сбои в работе аппаратуры приводят к нарушению хода обработки информации и, как следствие, могут искажать как исходные данные, так и саму программу.

Следствием появления ошибок в программе является ее отказ. Последствия отказов ПО можно разделить на:

· полное прекращение выполнения функций программы;

· кратковременное нарушение хода обработки информации в ИС.

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

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