MyEnvironment-Klasse

Stellt Informationen zum Betriebssystem, der Systemarchitektur, dem Benutzerkonto und dem eigenen Assembly bereit.

Archivierter Inhalt: Dieser Quelltext ist derzeit inaktiv und möglicherweise veraltet, nicht mehr gewartet oder funktioniert nicht mehr.

Diese Klasse wurde durch FieldLog ersetzt. FieldLog ist ein schnelles und umfassendes Logging-Werkzeug für .NET-Anwendungen. Es integriert mit der OSInfo-Klasse außerdem eine ausführliche Erkennung der Umgebung und unterstützt vergangene und aktuelle Windows-Versionen mit höherer Genauigkeit. Die OSInfo-Klasse aus dem FieldLog-Quelltext kann auch unabhängig verwendet werden, wenn die Protokollierungsfunktionen nicht benötigt werden.

Mit dieser Klasse kann die Betriebssystemversion (Windows XP, Vista, 7 usw.) ermittelt werden, und ob es sich um ein 64-Bit-System handelt. Anhand dieser Angaben kann das Programm dann zur Laufzeit entscheiden, was zu tun ist. Ebenso lassen sich Service-Pack und die Buildnummer sowie ein lesbarer Name des Betriebssystems wie „Windows XP“ oder „Windows Server 2008 R2“ abfragen. (Es werden nur Windows-Betriebssysteme unterstützt.)

Außerdem kann die Klasse einige Assembly-Attribute der laufenden Anwendung auslesen, u. a. den Titel (AssemblyTitle), die Beschreibung (AssemblyDescription) und die ausführliche Versionsangabe (AssemblyInformationalVersion). Zusammen mit Build-Werkzeugen wie GitRevisionTool oder SvnRevisionTool, die die Revisionsnummer aus der Quellcodeverwaltung in eins dieser Attribute schreiben, lässt sich dann in einem Info-Fenster die genaue Build-Revision anzeigen, ohne dass sie jedes Mal von Hand irgendwo eingetragen werden muss.

Schließlich kann man noch abfragen, ob der angemeldete Benutzer Mitglied in einer bestimmten Windows-Benutzergruppe ist. Darüber lassen sich z. B. Berechtigungskonzepte umsetzen, ohne dass die Anwendung die Benutzerverwaltung durchführen muss.

Die MyEnvironment-Klasse wird auch von der ErrorHandling-Klasse verwendet, um im Fehlerprotokoll möglichst genaue Angaben zur Systemumgebung und Programmversion festzuhalten.

Kompatibilität: .NET Ab Version 4.0

Mit kleinen Anpassungen funktioniert diese Klasse auch ab .NET 2.0, wo ich sie bereits lange eingesetzt habe. Die letzten Aktualisierungen erfordern jedoch .NET 4.0.

Beispiel

Der folgende Beispielcode zeigt, wie die MyEnvironment-Klasse verwendet werden kann:

// Informationen zur Anwendungs- und Systemversion sammeln
string info =
    "Anwendungsversion: " + MyEnvironment.AssemblyFileVersion +
        " (" + MyEnvironment.AssemblyInformationalVersion + ")\n" +
    "Betriebssystem-Produktname: " + MyEnvironment.OSProductName + "\n" +
    "Betriebssystemversion: " + MyEnvironment.OSName + " " +
        (MyEnvironment.Is64BitOS ? "x64" : "x86") +
        " Build " + MyEnvironment.OSBuild + " " +
        MyEnvironment.OSServicePackString + "\n";

// Zugang auf eine Windows-Benutzergruppe beschränken
if (!MyEnvironment.IsCurrentUserInWindowsGroup("MyApp administrators"))
{
    throw new SecurityException("Access to this function is not granted.");
}

Download

MyEnvironment.cs14,0 KiBQuelltext der MyEnvironment-Klasse

Lizenz und Nutzungsbedingungen

Diese Software wird unter den Bedingungen der vereinfachten BSD-Lizenz veröffentlicht. Die genauen Lizenzbedingungen befinden sich im Download.

Statistische Daten

  • Erstellt am 2007-07-26, aktualisiert am 2012-11-11.
  • Ca. 310 Codezeilen, geschätzte Ent­wick­lungs­kos­ten: 310 - 1 200 €