2010-05-12 13 views
8

No tengo una máquina XP a mano. Si utilizo el paquete de código API de Windows para hacer algo nuevo en Vista/Win7 (por ejemplo, "TaskDialog") en C#, ¿cómo se puede hacer frente a la ejecución en máquinas con Windows XP?Windows API Codepack Compatibilidad con versiones anteriores en Windows XP

Si utilizo el paquete de códigos, ¿he hecho efectivamente que mi aplicación solo sea compatible con Vista y versiones posteriores de Windows?

Respuesta

13

Si nos fijamos en "TaskDialog.cs", se encuentra que el constructor de TastDialog incluye las siguientes líneas:

// Throw PlatformNotSupportedException if the user is not running Vista or beyond 
CoreHelpers.ThrowIfNotVista(); 

Si sólo se incluye una referencia al ensamblado de Windows API Código paquete, se le multa . Pero el uso de una característica que no está presente en el sistema operativo que ejecuta actualmente su aplicación arrojará una excepción. Para comprobar si una función es segura para llamar (es decir, compatible con el sistema operativo actual), la mayoría de las clases incluyen una propiedad estática IsPlatformSupported.

Por lo tanto, puede marcar TaskDialog.IsPlatformSupported primero y llamar al MessageBox.Show() en su lugar si su sistema operativo no admite TaskDialogs.

Cuestiones relacionadas