Выявление проблем совместимости с помощью программы QFixApp
Для улучшения поддержки совместимости приложения с помощью программы QFixApp:
Примечание
Предполагается, что Вы уже проделали все рассмотренные ранее в этом разделе шаги по запуску приложения DEMOAPP.EXE в режиме совместимости с ОС Windows 95.
Нажмите кнопку Просмотреть журнал (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
- Выберите вкладку Исправления (Fixes) и нажмите Очистить (Clear), чтобы отменить все исправления, связанные с использованием оболочки ОС Windows 95. После чего, выберите именно те исправления, которые действительно использовались. Выбирая соответствующие исправления, Вы можете прочитать описание для каждого из них в поле Описание исправления (Fix description). Например, можно заметить, что описание исправления EmulateBitmapStride указывает на то, что это исправление следует использовать только для программ разработанных для ОС Windows 2000. Поскольку Вам не нужно применять исправление к приложению для работы в режиме ОС Windows 2000, исключите исправление EmulateBitmapStride.
- После того, как Вы выделите оставшиеся исправления из списка, нажмите еще раз кнопку Выполнить (Run).
- Укажите, что компьютер необходимо перезагрузить позже, и нажмите кнопку Готово (Finish).
- Вернитесь в программу QFixApp и нажмите еще раз кнопку Просмотреть журнал (View Log). Просмотрев еще раз содержимое файла журнала, Вы увидите, что теперь было использовано только семь из восьми выбранных исправлений: CorrectFilePaths, EmulateCreateProcess, EmulateGetCommandLine, EmulateGetDiskFreeSpace, IgnoreLoadLibrary, MapMemoryB0000 и Win95VersionLie.
- Очистите все исправления, представленные на вкладке Исправления (Fixes), и выберите только те семь исправлений, которые были представлены в последнем файле журнала.
- Нажмите кнопку Выполнить (Run), чтобы еще раз проверить работу приложения DEMOAPP.EXE. Дождавшись завершения работы программы, укажите, что перезагрузить компьютер необходимо позже, и нажмите Готово (Finish).
- Просмотрите еще раз содержимое файла журнала программы QFixApp. В этот раз Вы заметите, что все семь исправлений совместимости задействованы. Теперь все готово для того, чтобы создать файл. SDB собственной базы данных с этой информацией для дальнейшего переноса на другие компьютеры.
Примечание
Программу QFixApp можно использовать для создания файла собственной базы данных, с помощью которого можно осуществить перенос на другие компьютеры информации об исправлениях совместимости только для одного единственного приложения. Однако, если Вы воспользуйтесь вместо этого Администратором совместимости, у Вас появится гораздо больше возможностей.
Для создания файла базы данных в программе QFixApp:
- Убедитесь в правильном выборе Режима совместимости или исправлений совместимости для приложения, и затем нажмите кнопку Дополнительно (Advanced), чтобы раскрыть список Дополнительных параметров(Advanced). В Дополнительных параметрах отображен список атрибутов, однозначно определяющих приложение.
- Выберите ровно столько атрибутов, сколько необходимо для правильного определения программы. Кроме этого Вы можете нажать кнопку Добавить соответствующий файл (Add Matching File) и указать связанные файлы для однозначного определения приложения. Необходимые файлы можно указывать из всех папок, содержащих файлы, относящихся к приложению.
Эти шаги помогают ОС Windows XP однозначно определить приложение в тех случаях, когда исполняемый файл носит часто встречающееся название, например такое, как SETUP.EXE.Важно
Вам не нужно однозначно определять конечный исполняемый файл в программе QFixApp если Вы не собираетесь переносить на другие компьютеры файл. SDB, содержащий единственное исправление сделанное с помощью программы QFixApp. Группа Испытателей приложений Windows (Windows Application Experience team) настоятельно рекомендует Вам использовать программу QFixApp, чтобы определить, какие именно исправления нужно применить к приложению, а затем использовать Администратор совместимости (Compatibility Administrator), для создания и управления файлами. SDB, с помощью которых Вы осуществите перенос исправлений на другие компьютеры.
После того, как Вы добавите всю необходимую информацию о файле, выберете необходимые исправления, укажете путь к приложению и его имя, Вы можете приступить к созданию особого файла. SDB. - Создайте файл базы данных, нажав на кнопку Создать поддержку исправления(Create fix support) в программе QFixApp.