2010-05-12 15 views
8

Ich habe keine XP-Maschine zur Hand. Wenn ich das Windows-API-Codepack verwende, um in C# etwas Neues zu Vista/Win7 (z. B. "TaskDialog") zu machen, wie kann es mit Windows XP-Computern umgehen?Windows API Codepack Rückwärtskompatibilität auf Windows XP

Wenn ich das Codepack verwende, habe ich meine Anwendung effektiv nur Vista und höhere Versionen von Windows unterstützt?

Antwort

13

Wenn man sich in „TaskDialog.cs“, werden Sie feststellen, dass TastDialog Konstruktor die folgenden Zeilen enthält:

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

Wenn Sie nur einen Verweis auf die Windows-API-Code-Pack-Anordnung enthalten, werden Sie gut . Wenn Sie jedoch eine Funktion verwenden, die nicht auf dem Betriebssystem vorhanden ist, auf dem die Anwendung gerade ausgeführt wird, wird eine Ausnahme ausgelöst. Um zu überprüfen, ob ein Merkmal sicher zu rufen ist (d. H. Auf dem aktuellen Betriebssystem unterstützt wird), enthalten die meisten Klassen eine statische IsPlatformSupported-Eigenschaft.

So können Sie zunächst TaskDialog.IsPlatformSupported überprüfen und MessageBox.Show() stattdessen aufrufen, wenn Ihr Betriebssystem TaskDialogs nicht unterstützt.