Windows API CodePack обратно совместимость на Windows XP
-
26-09-2019 - |
Вопрос
У меня нет удобной машины XP. Если я использую CodePack Windows API CodePack, чтобы сделать что-то новое для Vista / Win7 (например, «TaskDialog») в C #, как он справляется с запуском на компьютерах Windows XP?
Если я использую Codeepack, я бы эффективно сделал мое приложение поддерживать только Vista и более поздние версии Windows?
Решение
Если вы посмотрите на «TaskDialog.cs», вы обнаружите, что конструктор TastDialog включает в себя следующие строки:
// Throw PlatformNotSupportedException if the user is not running Vista or beyond
CoreHelpers.ThrowIfNotVista();
Если вы включаете только ссылку на пакет кода API Windows, вы будете в порядке. Но используя функцию, которая отсутствует в ОС, в данный момент в данный момент ваша приложение будет выбрасывать исключение. Чтобы проверить, является ли функция безопасна для вызова (то есть поддерживаемая на текущей ОС), большинство классов включают статический IsPlatformSupported
имущество.
Так что вы могли бы проверить TaskDialog.IsPlatformSupported
Во-первых и звоните MessageBox.Show()
вместо этого, если ваша ОС не поддерживает TaskDialogs.