Запуск старых приложений в ОС Windows XP

OSzone.net » Microsoft » Windows XP » Другое » Запуск старых приложений в ОС Windows XP
Автор: Александр Пришляк aka Alexander_Grig
Иcточник: (переведено с англ.) Microsoft Technet
Опубликована: 07.06.2006
Club logo

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

Благодарности
Билл Шихара (Bill Shihara) (EN), руководитель проектов, корпорация Microsoft
Райен Маршалл (Ryan Marshall) (EN), руководитель проектов, корпорация Microsoft
Майкл Кесслер (Michael Kessler) (EN), технический редактор, корпорация Microsoft

*

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

 Введение

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

Для обычного пользователя

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

Для ИТ-специалиста

Оставшаяся часть статьи рассматривает проблему правильной работы старых приложений на ОС Windows XP с точки зрения ИТ-специалиста, который является ответственным за решение проблем совместимости приложений на большом количестве компьютеров.

Что Вам предстоит изучить

Вам предстоит изучить следующие способы запуска старых приложений при работе в ОС Windows XP:

Примечание: Пакет средств обеспечения совместимости приложений (Application Compatibility Toolkit) можно найти на установочном компакт-диске ОС Windows XP, или загрузить с сайта Microsoft по данной ссылке: http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000911.
Примечание автора перевода: по данной ссылке приложение отсутствует, эта ссылка правильная - http://www.microsoft.com/Rus/DesktopDeployment/appcompat/act30.mspx

Рассматриваемые темы

Темы, рассматриваемые в данной статье, включают в себя:

Top of page Наверх страницы

Использование вкладки Совместимость

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

Как работает Исправление совместимости

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

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

Определение необходимых исправлений совместимости

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

Использование Режима совместимости в случае, если необходимо несколько исправлений

Обычно для работы старых приложений требуется более чем одно исправление совместимости. Для таких случаев Microsoft сгруппировала часто используемые исправления совместимости в некотором режиме работы, называемом Режимом совместимости. Именно с этого режима Вам лучше всего начать, если Вы пытаетесь найти решения проблемы, связанной с совместимостью программ. Применить Режим совместимости можно, используя вкладку Совместимость (Compatibility) в окне Свойства (Properties) исполняемого файла программы так, как показано ниже на Рисунке 1.

Figure 1: Using the Compatibility tab to apply a compatibility mode to an application
Рисунок 1: Использование вкладки Совместимость (Compatibility) для применения к приложению режима совместимости
Увеличить рисунок

Для применения режима совместимости к отдельно взятому приложению:

  1. С помощью значка Мой компьютер (My Computer) или Проводника Windows (Explorer) найдите и выберите исполняемый файл приложения.
  2. Щелкните правой кнопкой мыши на исполняемом файле программы и выберите пункт Свойства (Properties) из контекстного меню.
  3. Выберите вкладку Совместимость (Compatibility), чтобы отобразить окно, приведенное выше на Рисунке 1.
  4. Установить флажок Запустить программу в режиме совместимости с (Run this program in compatibility mode for) и затем выберите необходимый режим совместимости. Нажмите OK.
  5. Запустите приложение и проверьте эффективность выбранного режима совместимости.

Возможно, Вам придется повторить этот процесс несколько раз, пока не найдете наиболее подходящий режим.

Использование визуальных тем при работе со старыми приложениями

Если примененный к Вашему приложению режим совместимости не помог, попробуйте использовать настройки из раздела Параметры экрана (Display settings) на вкладке Совместимость (Compatibility).

В состав ОС Windows XP входит несколько визуальных тем, из-за которых могут возникать ошибки при работе старых приложений. Если показалось, что приложение запустилось, но при этом изображение на экране искажено или экран погас, попробуйте установить флажок Отключить визуальное оформление (Disable visual themes). Возможно, также понадобится установить флажки Разрешение экрана 640x480 (Run in 640x480 screen resolution) или 256 цветов (Run in 256 colors).
Top of page Наверх страницы

Использование Мастера совместимости программ

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

Мастер совместимости программ

ОС Windows XP также включает в себя и другой очень простой подход в решении проблемы совместимости приложений - Мастер совместимости программ. Этот мастер позволяет с легкостью устранить различные проблемы с совместимостью, которые могут препятствовать нормальному выполнению старых программ на ОС Windows XP.
Мастер совместимости программ обладает графическим интерфейсом для настройки режимов совместимости и входит в состав Центра справки и поддержки.

Для использования Мастера совместимости программ:

  1. Нажмите Пуск (Start), Программы (All Programs), Стандартные (Accessories) и затем выберите Мастер совместимости программ (Program Compatibility Wizard).
    Внимание: Примите во внимание то, что нельзя использовать данный мастер для того, чтобы заставить нормально работать под ОС Windows XP старые антивирусные программы, дисковые утилиты, программы для резервирования данных, а также системные утилиты. При работе эти старые программы обращаются к драйверам на уровне ядра, что может нарушить стабильность системы. Также не используйте этот мастер для приложений, которые специально разрабатывались для работы в ОС Windows XP.
  2. Нажмите Далее (Next). Будет задан вопрос о том, каким образом необходимо открыть программу, для которой требуется настроить параметры совместимости. Будут предложены следующие варианты: Выбрать из списка программ (choose from a list of programs), Использовать программу на компакт-диске (use the program in the CD-ROM drive) или Найти программу вручную (locate the program manually). С помощью переключателя выберите необходимый вариант и нажмите Далее (Next).
  3. Выберите программу, для которой необходимо установить параметры совместимости. Содержание диалогового окна на данном этапе будет зависеть от того, какой вариант Вы выбрали на шаге 2. Нажмите Далее (Next) после того, как выберете приложение,.
  4. Выберите режим совместимости для программы. Выберите рекомендованную для данного приложения операционную систему или систему, в которой приложение работало корректно. Также Вы можете отказаться от применения режима совместимости. Закончив, нажмите Далее (Next).
  5. В списке предоставляется возможность выбора трех дополнительных настроек параметров экрана для установки совместимости программы: 256 цветов (256 colors), Разрешение экрана 640x480 точек (640x480 resolution), Отключить визуальное оформление (disable visual themes). Вы можете, как выбрать, какие из них использовать, так и вообще отказаться от их использования. Закончив, нажмите Далее (Next).
  6. Мастер отобразит всю суммарную информацию о тех настройках, которые Вы выбрали. Если все верно, нажмите Далее (Next), чтобы проверить настройки в работе. Это приведет к запуску программы с выбранными для нее настройками.
  7. Последняя страница мастера позволяет Вам выбрать, что делать дальше: применить эти параметры совместимости и всегда использовать их с этой программой, отменить внесенные изменения из-за того, что они не помогли, или сохранить их и запустить мастер еще раз, чтобы попробовать применить другие параметры совместимости.

После того, как Мастер совместимости программ закончит свою работу, все исправления совместимости будут применены к Вашей программе и будут действовать до тех пор, пока Вы не удалите их или не переустановите приложение. Вам не нужно будет больше предпринимать никаких дополнительных шагов во время выполнения программы, чтобы пользоваться всеми преимуществами технологии совместимости программ ОС Windows XP.
Top of page Наверх страницы

Выявление проблем совместимости с помощью программы QFixApp

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

Программа QFixApp

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

Главное окно программы QFixApp содержит две вкладки:

Figure 2: The Layers tab of QFixApp is used to apply compatibility modes to an application

Рисунок 2: Вкладка Оболочки программы QFixApp, используемая для применения режимов совместимости к приложению
Увеличить рисунок

Программа QFixAPP и перенос исправлений на другие компьютеры

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

Работа выбранного Вами Режима совместимости
После того, как Вы смогли найти тот режим совместимости, в котором приложение правильно работает:

  1. Воспользуйтесь сведениями из журнала программы QFixApp, для определения того, какие индивидуальные исправления совместимости используются, а какие можно исключить.
  2. Используйте вкладку Исправления (Fixes), чтобы выбрать или исключить исправления совместимости в зависимости от того, действительно ли они необходимы приложению.
  3. Откройте Дополнительные (Advanced) параметры и завершите процесс, введя необходимую дополнительную информацию, благодаря чему ОС Windows XP сможет точно определить программу, даже если на компьютер будет установлена другая программа с таким же названием.
  4. Вы можете записать эту информацию в файл .SDB базы данных совместимости для дальнейшего переноса на другие компьютеры.

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

DEMOAPP.EXE—демонстрационное приложение

В Пакет средств обеспечения совместимости приложений включено демонстрационное приложение с названием DEMOAPP.EXE, которое находится в папке Demoapp внутри папки Application Compatibility Toolkit. Оно имитирует приложение, которое должно запускаться только в ОС Windows 95 и у которого возникают ошибки совместимости при работе в ОС Windows XP. Данное демонстрационное приложение было разработано специально для того, чтобы Вы могли попрактиковаться со средствами, рассмотренными в данной статье.

Для применения режима совместимости к DEMOAPP.EXE:

  1. Запустите программу QFixApp, нажав Пуск (Start), Программы (All Programs), Пакет средств обеспечения совместимости приложений (Application Compatibility Toolkit) и затем щелкните QFixApp.
  2. При выбранной вкладке Оболочки (Layers), нажмите кнопку Обзор (Browse). Используйте диалоговое окно Выбор исполняемого файла (Select an executable), чтобы найти исполняемый файл, который необходимо "исправить". Выберите файл и нажмите Открыть (Open).
  3. Если необходимы какие-либо параметры командной строки, введите их в текстовом поле Командной строки (Command line).
  4. Выберите необходимый режим совместимости. (Необходимо знать, что демонстрационное приложение DEMOAPP.EXE рассчитано на работу под ОС Windows 95 , поэтому во время выполнения упражнения, когда Вы запустите исполняемый файл .EXE, будет выдано сообщение о том, что приложению для работы необходима ОС Windows 95).
  5. Выбрав для тестирования необходимый режим совместимости, нажмите кнопку Выполнить (Run), чтобы проверить работу выбранного режима совместимости. Если Вам кажется, что удалось добиться нормальной работы программы, Вы сможете в программе QFixApp выбрать одно из двух действий: создать постоянное исправление или продолжить работу, чтобы выбрать другие исправления совместимости.

Создание файла Собственной базы данных совместимости с помощью программы QFixApp

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

Чтобы исправления совместимости стали более постоянными:

  1. В программе QFixApp на вкладке Оболочки (Layers) отобразите Дополнительные возможности, нажав на кнопку Дополнительно (Advanced).
  2. Нажмите кнопку Создать поддержку исправлений (Create fix support). На этом шаге будет создан файл собственной базы данных совместимости с названием DEMOAPP.SDB (название которого соответствует названию приложения DEMOAPP.EXE), расположенный в папке C:\\Windows\\AppPatch.
  3. После создания файла базы данных с помощью программы QFixApp будет предложено установить его. При этом информация об исправлениях совместимости будет занесена в системный реестр, благодаря чему ОС Windows XP сможет использовать файл базы данных совместимости во время работы приложения. Установка файла базы данных гарантирует, что режим совместимости будет применяться всякий раз при использовании программы.

Оптимизация работы приложений
Возможно, применение режима совместимости может снизить производительность работы измененного приложения. Это может быть вызвано некоторыми исправлениями совместимости примененного режима совместимости, которые на самом деле приложению не нужны. Вы можете оптимизировать работу приложения, выполняемого в режиме совместимости, путем анализа содержимого файла журнала программы QFixApp, в котором можете посмотреть, какие исправления совместимости действительно использовались приложением. Получив необходимую информацию, Вы можете отменить остальные исправления совместимости в режиме совместимости с ОС Windows 95, используя программу QFixApp.
Напомним, что мы используем программу DEMOAPP.EXE, на примере которой покажем, как осуществляется поддержка совместимости приложения.

Для улучшения поддержки совместимости приложения с помощью программы QFixApp:
Примечание: Предполагается, что Вы уже проделали все рассмотренные ранее в этом разделе шаги по запуску приложения DEMOAPP.EXE в режиме совместимости с ОС Windows 95.

  1. Нажмите кнопку Просмотреть журнал (View Log), чтобы открыть файл журнала программы QFixApp. (Если Вы просмотрите приведенный ниже пример файла журнала, то увидите, что при работе под оболочкой ОС Windows 95 были применены следующие исправления: CorrectFilePaths, EmulateBitmapStride, EmulateCreateProcess, EmulateGetCommandLine, EmulateGetDiskFreeSpace, HandleRegExpandSzRegistryKeys, IgnoreLoadLibrary, MapMemoryB0000, и Win95VersionLie).

    -------------------------------------------
     Log  "C:\Program Files\Application Compatibility Toolkit\demoapp\demoapp.exe"
    -------------------------------------------
    05/11/2001 13:25:11 EmulateCreateProcess 1 –
    [EmulateCreateProcess_ParseCommandLine] Illegal command line switch
    "C:\Program".
    05/11/2001 13:25:11 EmulateCreateProcess 1 –
    [EmulateCreateProcess_ParseCommandLine] Illegal command line switch
    "Files\Application".
    05/11/2001 13:25:11 EmulateCreateProcess 1 –
    [EmulateCreateProcess_ParseCommandLine] Illegal command line switch
    "Compatibility".
    05/11/2001 13:25:11 EmulateCreateProcess 1 –
    [EmulateCreateProcess_ParseCommandLine] Illegal command line switch
    "Toolkit".
    05/11/2001 13:25:11 EmulateCreateProcess 1 –
    [EmulateCreateProcess_ParseCommandLine] Illegal command line switch
    "2\demoapp\demoapp.exe".
    05/11/2001 13:25:11 MapMemoryB0000 3 - [NotifyFn] Created block at 0xB0000.
    05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95.
    05/11/2001 13:25:11 EmulateGetCommandLine 1 - [GetCommandLineA] Changed
    "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe " to
    "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe ".
    05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95.
    05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95.
    05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95.
    05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersion] Return Win95.
    05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95.
    05/11/2001 13:25:11 EmulateGetCommandLine 1 - [GetModuleFileNameA] Changed
    "C:\Program Files\Application Compatibility Toolkit\demoapp\demoapp.exe" to
     "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe".
    05/11/2001 13:25:11 EmulateBitmapStride 3 - [GetObjectA] width of scan lines from
    426 to 428
    05/11/2001 13:25:16 Win95VersionLie 3 - [GetVersionExA] Return Win95.
    05/11/2001 13:25:22 IgnoreLoadLibrary 3 - APIHook_LoadLibraryA
    Allow(CVT32.DLL)
    05/11/2001 13:25:26 EmulateGetDiskFreeSpace 3 - [GetDiskFreeSpaceA] Called.
    Returning <=2GB FREE SPACE
    05/11/2001 13:25:27 EMULATEGETCOMMANDLINE 1 - [GETMODULEFILENAMEA] CHANGED
    "C:\Program Files\Application Compatibility Toolkit\demoapp\demoapp.exe" TO
    "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe".
    05/11/2001 13:25:27 CORRECTFILEPATHS 1 - GETFILEATTRIBUTESW CORRECTED PATH:
        C:\PROGRAM FILES
        C:\PROGRA~1
    05/11/2001 13:25:27 CORRECTFILEPATHS 1 - CREATEDIRECTORYA CORRECTED PATH:
        C:\PROGRAM FILES\COMPATIBILITY DEMO
        C:\PROGRA~1\COMPATIBILITY DEMO
    05/11/2001 13:25:27 CORRECTFILEPATHS 1 - CREATEDIRECTORYA CORRECTED PATH:
        C:\PROGRAM FILES\COMPATIBILITY DEMO\DEMOAPP
        C:\PROGRA~1\COMPATIBILITY DEMO\DEMOAPP
    
  2. Выберите вкладку Исправления (Fixes) и нажмите Очистить (Clear), чтобы отменить все исправления, связанные с использованием оболочки ОС Windows 95. После чего, выберите именно те исправления, которые действительно использовались. Выбирая соответствующие исправления, Вы можете прочитать описание для каждого из них в поле Описание исправления (Fix description). Например, можно заметить, что описание исправления EmulateBitmapStride указывает на то, что это исправление следует использовать только для программ разработанных для ОС Windows 2000. Поскольку Вам не нужно применять исправление к приложению для работы в режиме ОС Windows 2000, исключите исправление EmulateBitmapStride.
  3. После того, как Вы выделите оставшиеся исправления из списка, нажмите еще раз кнопку Выполнить (Run).
  4. Укажите, что компьютер необходимо перезагрузить позже, и нажмите кнопку Готово (Finish).
  5. Вернитесь в программу QFixApp и нажмите еще раз кнопку Просмотреть журнал (View Log). Просмотрев еще раз содержимое файла журнала, Вы увидите, что теперь было использовано только семь из восьми выбранных исправлений: CorrectFilePaths, EmulateCreateProcess, EmulateGetCommandLine, EmulateGetDiskFreeSpace, IgnoreLoadLibrary, MapMemoryB0000 и Win95VersionLie.
  6. Очистите все исправления, представленные на вкладке Исправления (Fixes), и выберите только те семь исправлений, которые были представлены в последнем файле журнала.
  7. Нажмите кнопку Выполнить (Run), чтобы еще раз проверить работу приложения DEMOAPP.EXE. Дождавшись завершения работы программы, укажите, что перезагрузить компьютер необходимо позже, и нажмите Готово (Finish).
  8. Просмотрите еще раз содержимое файла журнала программы QFixApp. В этот раз Вы заметите, что все семь исправлений совместимости задействованы. Теперь все готово для того, чтобы создать файл .SDB собственной базы данных с этой информацией для дальнейшего переноса на другие компьютеры.

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

Для создания файла базы данных в программе QFixApp:

  1. Убедитесь в правильном выборе Режима совместимости или исправлений совместимости для приложения, и затем нажмите кнопку Дополнительно (Advanced), чтобы раскрыть список Дополнительных параметров (Advanced). В Дополнительных параметрах отображен список атрибутов, однозначно определяющих приложение.
  2. Выберите ровно столько атрибутов, сколько необходимо для правильного определения программы. Кроме этого Вы можете нажать кнопку Добавить соответствующий файл (Add Matching File) и указать связанные файлы для однозначного определения приложения. Необходимые файлы можно указывать из всех папок, содержащих файлы, относящихся к приложению.
    Эти шаги помогают ОС Windows XP однозначно определить приложение в тех случаях, когда исполняемый файл носит часто встречающееся название, например такое, как SETUP.EXE.

    Важно: Вам не нужно однозначно определять конечный исполняемый файл в программе QFixApp если Вы не собираетесь переносить на другие компьютеры файл .SDB, содержащий единственное исправление сделанное с помощью программы QFixApp. Группа Испытателей приложений Windows (Windows Application Experience team) настоятельно рекомендует Вам использовать программу QFixApp, чтобы определить, какие именно исправления нужно применить к приложению, а затем использовать Администратор совместимости (Compatibility Administrator), для создания и управления файлами .SDB, с помощью которых Вы осуществите перенос исправлений на другие компьютеры.
    После того, как Вы добавите всю необходимую информацию о файле, выберете необходимые исправления, укажете путь к приложению и его имя, Вы можете приступить к созданию особого файла .SDB.

  3. Создайте файл базы данных, нажав на кнопку Создать поддержку исправления (Create fix support) в программе QFixApp.

Создание XML-файла, основанного на данных собственной базы данных совместимости

Заключительная возможность, которая доступна пользователям программы QFixApp, это создание файла XML, основанного на данных из собственной базы данных совместимости, которую Вы создали. Это может быть полезно в тех случаях, если Вы создали какой-то особый режим совместимости, который может оказаться полезным другим пользователям, и Вы хотите его отправить в корпорацию Microsoft. Корпорация Microsoft иногда будет распространять режимы совместимости, используя службу обновлений Microsoft Update, и некоторые из предлагаемых там режимов могут быть созданы пользователями.
С помощью службы обновлений Microsoft Update можно сделать доступным другим пользователям файл XML, который Вы создали с помощью программы QFixApp. Они смогут использовать его, воспользовавшись Администратором совместимости, который будет рассмотрен в следующем разделе—Создание Собственной базы данных совместимости с помощью Администратора совместимости.

Для экспорта информации об исправлениях совместимости в файл XML:

  1. Создайте режим исправлений, с помощью которого удается решить проблемы с совместимостью для Вашего приложения, выполняя все шаги, рассмотренные ранее в этом разделе.
  2. Нажмите кнопку Дополнительно (Advanced), чтобы отобразить Дополнительные параметры программы QFixApp.
  3. Нажмите кнопку Создать поддержку исправления (Create fix support), чтобы создать выборочный файл .SDB.
  4. Нажмите кнопку Показать XML (Show XML), чтобы открыть диалоговое окно, отображающее содержимое файла XML со всей необходимой информацией об исправлениях совместимости, как показано ниже на Рисунке 3.
  5. Нажмите кнопку Сохранить XML в файл (Save XML to File), чтобы сохранить эту информацию в текстовый файл. Этот файл можно отослать как почтовое вложение.

Figure 3: Exporting compatibility fix information to an XML file

Рисунок 3: Экспорт информации об исправлениях совместимости в файл XML
Увеличить рисунок

Top of page Наверх страницы



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

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

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

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

Figure 4: Packaging a group of fixes for distribution to other Windows XP computers
Рисунок 4: Создание набора исправлений для переноса на другие компьютеры, работающие под управлением ОС Windows XP
Увеличить рисунок

 Соответствующие файлы, исправления и база данных совместимости

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

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

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

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

Для создания собственной базы данных совместимости:

  1. Запустите Администратор совместимости (Compatibility Administrator), нажав Пуск (Start), Программы (All Programs), Пакет средств обеспечения совместимости приложений (Application Compatibility Toolkit) и затем выберите Администратор совместимости (Compatibility Administrator). (Обратите внимание, что Администратор совместимости запускается с новой пустой базой данных)
  2. Выберите в меню База данных (Database) команду Переименовать базу данных (Change Database Name). Переименуйте базу данных в MyDb.sdb. (Вы можете также использовать любое другое название для этого файла). Выберите в меню Файл (File) команду Сохранить (Save), чтобы сохранить изменения.
  3. Чтобы добавить исправления совместимости в базу данных для какого-то приложения, выберите в меню База данных (Database) команду Создать исправление приложения (Create an Application Fix). Откроется диалоговое окно Создать исправление приложения (Create an Application Fix).
  4. Выберите пункт Применить особые исправления совместимости (Apply Specific Compatibility Fix) и затем нажмите Далее (Next).
  5. Введите DemoApp в качестве названия приложения и нажмите Далее (Next).
  6. Выберите файл, для которого необходимо создать исправление совместимости, указав название его исполняемого файла и путь к нему, или выполните обзор для его поиска. Когда увидите название исполняемого файла и путь к нему, нажмите кнопку Далее (Next).
  7. Ранее с помощью программы QFixApp Вы уже определили, какие исправления необходимы приложению DEMOAPP.EXE. Поэтому выберите следующие исправления, необходимые для работы приложения Demoapp.exe: CorrectFilePaths, EmulateCreateProcess, EmulateGetCommandLine, EmulateGetDiskFreeSpace, IgnoreLoadLibrary, MapMemoryB0000 и Win95VersionLie. Сделав свой выбор, нажмите Далее (Next).
  8. В следующем диалоговом окне Вас попросят указать те файлы, с помощью которых можно будет точно определить приложение. В данном упражнении, нажмите кнопку Добавить файл (Add File) и найдите файл DEMOAPP.HLP, расположенный в той же папке, что и DEMOAPP.EXE. (Обратите внимание, что для того, чтобы файл помощи отобразился в списке, необходимо предварительно в поле Тип файлов выбрать Все файлы (All Files) ). Нажмите кнопу OK, чтобы добавить этот файл, а затем нажмите Далее (Next), чтобы продолжить.
  9. Последняя страница мастера позволит Вам проверить работу исправлений, которые Вы выбрали. Нажмите кнопку Выполнить тестирование (Test Run), чтобы проверить установки перед сохранением изменений. Убедившись, что приложение работает правильно с выбранными исправлениями совместимости, нажмите кнопку Готово (Finish), чтобы вернуться в Администратор совместимости. Новые исправления совместимости добавлены в Вашу собственную базу данных совместимости.
  10. В меню Файл (File) выберите команду Сохранить (Save), чтобы сохранить изменения в собственной базе данных совместимости.

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

Top of page Наверх страницы

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

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

Добавление информации в собственную базу данных

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

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

После создания собственной базы данных совместимости необходимо ее зарегистрировать в системе, чтобы все исправления действовали во время работы приложения. Регистрация базы данных совместимости в ОС Windows XP выполняется очень просто. Файлы с расширением .SDB являются зарегистрированными в ОС Windows XP, поэтому, чтобы зарегистрировать базу данных, необходимо просто запустить ее файл. Это можно сделать, просто выполнив двойной щелчок на файле или используя команду Выполнить (Run) из меню Пуск (Start).

Установщик базы данных совместимости - SDBINST.EXE

Для применения базы данных в ОС Windows 2000, необходимо воспользоваться утилитой SDBINST.EXE, по умолчанию включенную в состав ОС Windows XP.
Утилита SDBINST.EXE имеет следующий синтаксис:

Sdbinst.exe [?][-q][-u][-g][-n] mydb.sdb | GUID | InternalFileName
-?    Displays the help text
-q   Quiet mode; all messages are suppressed
-u   Uninstall
-g{GUID} GUID of the database file
-n "name" The internal file name of the compatibility database

Sdbinst.exe [?][-q][-u][-g][-n] mydb.sdb | GUID | „имя”
-?   Вывод сведений об использовании
-q   Автономный режим, без взаимодействия с пользователем
-u   Удаление
-g{GUID} GUID файл (только для удаления)
-n "имя" Внутреннее имя файла (только для удаления)

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

Распространение базы данных совместимости

Существует множество вариантов распространения собственной базы данных совместимости в Вашей организации. Некоторые из них:

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

Пример: Использование сценария входа
Рассмотрим следующий пример использования сценария входа:

if not exist %systemroot%\\apppatch\\mydb.sdb sdbinst.exe -q \\\\server1\\compat\\mydb.sdb

Добавление этой строчки в сценарий входа для группы пользователей приведет к тому, что команда будет выполняться каждый раз во время запуска сценария. В данном примере логическое выражение if not exist используется для того, чтобы проверить, была ли уже добавлена собственная база данных в систему, и если нет – то с помощью команды SDBINST.EXE происходит ее установка из сетевой папки.

Примечание: Для того, чтобы команда могла выполниться, пользователь должен иметь разрешение на чтение сетевой папки.

Top of page Наверх страницы

Заключение

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

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

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

Top of page Наверх страницы

Связанные ресурсы

Для получения дополнительной информации воспользуйтесь следующими источниками:

Top of page Наверх страницы




Обсуждение статьи на форуме

Ссылка: http://www.oszone.net/3921/Run_Legacy_Applications_Using_Windows_XP