Frage

Ich mag die Vorteile der neuen in einer .NET-Anwendung Windows-7-Taskleiste Funktionalität nehmen und würde gerne wissen, was die Leute denken der beste Weg ist für Windows 7 Funktionen in .NET zu überprüfen. Mein Ziel ist es 7 verschiedenen Code für Windows XP und Windows zu haben.

Ich bin nicht scharf auf overally:

  • nur das Einwickeln des Windows 7-Code in einem Try-Catch
  • wenn OS = "Windows 7" Then ...

Es sei denn natürlich ist das, was die meisten tun. Ich habe wirklich überall für einen guten Ansatz gejagt, aber ohne Erfolg. Die Microsoft nicht verwalteten Code Wrapper-Bibliothek scheint nur auf Windows 7 ... es annehmen läuft

Andere Tipps

Ich würde erwarten, dass Sie tun:

if ( Environment.OSVersion.Platform == windows7Id)
{
    // win7 stuff
}

Sie wissen nicht, welchen Wert die Windows7-ID ist jedoch.

Ich frage Regel, diese Frage zu entscheiden, welches Objekt die ich von meinen Fabriken schaff' verschiedene Plattformen zu unterstützen. Schöner als diese ganzen Code-Basis oder fangen Ausnahmen Beregnung.

Wenn Sie eine Wrapper-Bibliothek wie Code-Pack verwenden ( http://code.msdn.microsoft.com / WindowsAPICodePack ) sie stellt die Version für Sie überprüft. Sie voran gehen und die Bibliothek Methoden aufrufen und es wird eine PlatformNotSupportedException werfen, wenn Sie versuchen, etwas, das nicht auf das Betriebssystem ist, wenn Sie runnning.

Sie können auch EntryPointNotFoundException fangen, wenn Sie P sind / Aufrufen in einigen Windows-DLL. Dies ist der beste Ansatz, wenn die eigene Interop tun, weil Funktionalität (von Updates und Service Pack) Jahren ab jetzt in einem niedrigeren Stufe O hinzugefügt bekommen kann.

Mit diesen beiden, können Sie irgendeine Art von Flag-Cache, die Sie dort erinnert keine Taskleiste oder gibt es keine Bibliotheken oder Sie haben nicht unabhängig von Funktionen, um so den perf Hit Werfen und Fangen der Ausnahme zu speichern.

Wenn Sie darauf bestehen, auf eigene Versionsprüfung zu tun und zu sehen, was OS sind Sie auf Sie erinnere mich an die Magie von> =. Sie wissen, wie viel Code gibt, ist, dass die Tests die Version genau XP SP2 und dann ein Meldungsfeld sagen aushält „Erfordert XP SP2 oder höher“? Ein ton . In der Tat, das ist, warum ist die Hauptversion für Win7 6 -, so dass die gesamte Code Überprüfung für „gleich 6“ noch funktionieren würde. Sie nicht der Typ sein.

if (Environment.OSVersion.Version.Major >= 6)
{
   if (Environment.OSVersion.Version.Minor >= 1)
     // Do Win7 thing
   else
     // Do Vista thing
}
else if (Environment.OSVersion.Version.Major >= 5)
 // Do XP thing

Sie können alle Major / Minor-Nummern an finden: http://msdn.microsoft.com/en-us/library/ms724832%28VS.85%29.aspx

Kate

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top