using System; namespace Developpez.Dotnet.System.Providers { /// /// Interface décrivant un fournisseur d'informations systèmes en fonction de la plateforme actuelle /// public interface ISystemInteropProvider { /// /// Nom du système d'exploitation /// string PlatformDisplayName { get; } /// /// Version installée de DirectX /// DirectXVersion DirectXVersion { get; } /// /// Redémarre le système avec la raison spécifiée /// /// Raison du redémarrage /// true si l'opération a été un succès, false sinon bool Reboot(RebootReason reason); /// /// Obtients la version actuelle du Framework .NET /// /// version actuelle du Framework .NET FrameworkVersion GetFrameworkVersion(); /// /// Indique si le système supporte l'élévation de privilèges /// bool SupportsElevation { get; } /// /// Indique si le processus courant dispose du token complet administrateur (élévation de privilèges) /// bool IsElevated { get; } /// /// Obtient les informations du thème du système /// SystemThemeInfo ThemeInfo { get; } } /// /// Classe vide par défaut pour tous les sytèmes /// public class NullSystemProvider : ISystemInteropProvider { /// /// Initialise une nouvelle instance de NullSystemProvider /// protected internal NullSystemProvider() { } #region ISystemInteropProvider Membres /// /// Renvoi le nom du système /// public virtual string PlatformDisplayName { get { return Environment.OSVersion.VersionString; } } /// /// Redémarre le système avec la raison spécifiée /// /// Raison du redémarrage /// true si le redémarrage a été initialisé, false sinon public virtual bool Reboot(RebootReason reason) { throw new PlatformNotSupportedException(); } /// /// Obtient la version installée du Framework .NET /// /// Version du Framework public virtual FrameworkVersion GetFrameworkVersion() { throw new PlatformNotSupportedException(); } /// /// Indique si le système supporte l'élévation de privilèges /// public virtual bool SupportsElevation { get { return false; } } /// /// Indique si le processus courant dispose du token complet administrateur (élévation de privilèges) /// public virtual bool IsElevated { get { return false; } } /// /// Obtient les informations du thème du système /// public virtual SystemThemeInfo ThemeInfo { get { throw new PlatformNotSupportedException(); } } /// /// Obtient la version détectée de DirectX actuellement installée sur le système /// /// Valide uniquement sru Windows public virtual DirectXVersion DirectXVersion { get { throw new PlatformNotSupportedException(); } } #endregion } }