我手边没有XP机器。如果我使用 Windows API 代码包在 C# 中对 Vista/Win7 做一些新的事情(例如“TaskDialog”),它如何应对在 Windows XP 机器上运行?
如果我使用 Codepack,我是否有效地使我的应用程序只支持 Vista 和更高版本的 Windows?
我手边没有XP机器。如果我使用 Windows API 代码包在 C# 中对 Vista/Win7 做一些新的事情(例如“TaskDialog”),它如何应对在 Windows XP 机器上运行?
如果我使用 Codepack,我是否有效地使我的应用程序只支持 Vista 和更高版本的 Windows?
如果您查看“TaskDialog.cs”,您会发现 TastDialog 的构造函数包含以下几行:
// Throw PlatformNotSupportedException if the user is not running Vista or beyond
CoreHelpers.ThrowIfNotVista();
如果您只包含对 Windows API 代码包程序集的引用,则可以。但是使用当前运行您的应用程序的操作系统上不存在的功能将引发异常。要检查一个特性是否可以安全调用(即当前操作系统支持),大多数类都包含一个静态IsPlatformSupported
属性。
因此,如果您的操作系统不支持 TaskDialogs ,您可以先检查TaskDialog.IsPlatformSupported
并调用。MessageBox.Show()