Environment类:提供有关当前环境和平台的信息以及操作它们的方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wqq1027/article/details/84950637
#region 程序集 mscorlib.dll, v4.0.30319
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\mscorlib.dll
#endregion

using Microsoft.Win32;
using System.Collections;
using System.Diagnostics.Contracts;
using System.Globalization;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using System.Security;

namespace System
{
    // 摘要:
    //     提供有关当前环境和平台的信息以及操作它们的方法。此类不能被继承。
    [ComVisible(true)]
    public static class Environment
    {
        // 摘要:
        //     获取该进程的命令行。
        //
        // 返回结果:
        //     包含命令行参数的字符串。
        public static string CommandLine { get; }
        //
        // 摘要:
        //     获取或设置当前工作目录的完全限定路径。
        //
        // 返回结果:
        //     包含目录路径的字符串。
        //
        // 异常:
        //   System.ArgumentException:
        //     尝试设置为空字符串 ("")。
        //
        //   System.ArgumentNullException:
        //     尝试设置为 null.
        //
        //   System.IO.IOException:
        //     发生了 I/O 错误。
        //
        //   System.IO.DirectoryNotFoundException:
        //     尝试设置一个无法找到的本地路径。
        //
        //   System.Security.SecurityException:
        //     调用方没有适当的权限。
        public static string CurrentDirectory { get; set; }
        //
        // 摘要:
        //     获取或设置进程的退出代码。
        //
        // 返回结果:
        //     包含退出代码的 32 位有符号整数。默认值为零。
        public static int ExitCode { get; set; }
        //
        // 摘要:
        //     获取一个值,该值指示公共语言运行时 (CLR) 是否正在关闭。
        //
        // 返回结果:
        //     如果公共语言运行时正在关闭,则为 true;否则为 false。
        public static bool HasShutdownStarted { get; }
        //
        // 摘要:
        //     确定当前操作系统是否为 64 位操作系统。
        //
        // 返回结果:
        //     如果操作系统为 64 位操作系统,则为 true;否则为 false。
        public static bool Is64BitOperatingSystem { get; }
        //
        // 摘要:
        //     确定当前进程是否为 64 位进程。
        //
        // 返回结果:
        //     如果进程为 64 位进程,则为 true;否则为 false。
        public static bool Is64BitProcess { get; }
        //
        // 摘要:
        //     获取此本地计算机的 NetBIOS 名称。
        //
        // 返回结果:
        //     包含此计算机的名称的字符串。
        //
        // 异常:
        //   System.InvalidOperationException:
        //     无法获取此计算机的名称。
        public static string MachineName { get; }
        //
        // 摘要:
        //     获取为此环境定义的换行字符串。
        //
        // 返回结果:
        //     对于非 Unix 平台为包含“\r\n”的字符串,对于 Unix 平台则为包含“\n”的字符串。
        public static string NewLine { get; }
        //
        // 摘要:
        //     获取包含当前平台标识符和版本号的 System.OperatingSystem 对象。
        //
        // 返回结果:
        //     一个包含平台标识符和版本号的对象。
        //
        // 异常:
        //   System.InvalidOperationException:
        //     该属性无法获得系统版本。- 或 -获得的平台标识符不是 System.PlatformID. 的成员。
        public static OperatingSystem OSVersion { get; }
        //
        // 摘要:
        //     获取当前计算机上的处理器数。
        //
        // 返回结果:
        //     指定当前计算机上处理器个数的 32 位有符号整数。没有默认值。
        public static int ProcessorCount { get; }
        //
        // 摘要:
        //     获取当前的堆栈跟踪信息。
        //
        // 返回结果:
        //     包含堆栈跟踪信息的字符串。此值可为 System.String.Empty.。
        //
        // 异常:
        //   System.ArgumentOutOfRangeException:
        //     请求的堆栈跟踪信息超出范围。
        public static string StackTrace { get; }
        //
        // 摘要:
        //     获取系统目录的完全限定路径。
        //
        // 返回结果:
        //     包含目录路径的字符串。
        public static string SystemDirectory { get; }
        //
        // 摘要:
        //     获取操作系统的页面文件的内存量。
        //
        // 返回结果:
        //     系统页面文件中的字节数。
        public static int SystemPageSize { get; }
        //
        // 摘要:
        //     获取系统启动后经过的毫秒数。
        //
        // 返回结果:
        //     一个 32 位带符号整数,它包含自上次启动计算机以来所经过的时间(以毫秒为单位)。
        public static int TickCount { get; }
        //
        // 摘要:
        //     获取与当前用户关联的网络域名。
        //
        // 返回结果:
        //     与当前用户关联的网络域名。
        //
        // 异常:
        //   System.PlatformNotSupportedException:
        //     该操作系统不支持检索网络域名。
        //
        //   System.InvalidOperationException:
        //     无法检索此网络域名。
        public static string UserDomainName { get; }
        //
        // 摘要:
        //     获取一个值,用以指示当前进程是否在用户交互模式中运行。
        //
        // 返回结果:
        //     如果当前进程在用户交互模式中运行,则为 true;否则为 false。
        public static bool UserInteractive { get; }
        //
        // 摘要:
        //     获取当前已登录到 Windows 操作系统的人员的用户名。
        //
        // 返回结果:
        //     已登录到 Windows 的人员的用户名。
        public static string UserName { get; }
        //
        // 摘要:
        //     获取一个 System.Version 对象,该对象描述公共语言运行时的主版本、次版本、内部版本和修订号。
        //
        // 返回结果:
        //     用于显示公共语言运行时版本的对象。
        public static Version Version { get; }
        //
        // 摘要:
        //     获取映射到进程上下文的物理内存量。
        //
        // 返回结果:
        //     一个 64 位有符号整数,包含映射到进程上下文的物理内存字节的数目。
        public static long WorkingSet { get; }

        // 摘要:
        //     终止此进程并为基础操作系统提供指定的退出代码。
        //
        // 参数:
        //   exitCode:
        //     提供给操作系统的退出代码。
        //
        // 异常:
        //   System.Security.SecurityException:
        //     调用方没有足够的安全权限来执行此函数。
        [SecuritySafeCritical]
        public static void Exit(int exitCode);
        //
        // 摘要:
        //     将嵌入到指定字符串中的每个环境变量的名称替换为该变量的值的等效字符串,然后返回结果字符串。
        //
        // 参数:
        //   name:
        //     包含零个或多个环境变量名的字符串。每个环境变量都用百分号 (%) 引起来。
        //
        // 返回结果:
        //     一个字符串,其中的每个环境变量均被替换为该变量的值。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     name 为 null。
        [SecuritySafeCritical]
        public static string ExpandEnvironmentVariables(string name);
        //
        // 摘要:
        //     向 Windows 的应用程序事件日志写入消息后立即终止进程,然后在发往 Microsoft 的错误报告中加入该消息。
        //
        // 参数:
        //   message:
        //     解释进程终止原因的消息,或者如果未提供解释则返回 null。
        [SecurityCritical]
        public static void FailFast(string message);
        //
        // 摘要:
        //     向 Windows 的应用程序事件日志写入消息后立即终止进程,然后在发往 Microsoft 的错误报告中加入该消息和异常信息。
        //
        // 参数:
        //   message:
        //     解释进程终止原因的消息,或者如果未提供解释则返回 null。
        //
        //   exception:
        //     一个异常,表示导致终止的错误。通常这是 catch 块中的异常。
        [SecurityCritical]
        public static void FailFast(string message, Exception exception);
        //
        // 摘要:
        //     返回包含当前进程的命令行参数的字符串数组。
        //
        // 返回结果:
        //     字符串数组,其中的每个元素都包含一个命令行参数。第一个元素是可执行文件名,后面的零个或多个元素包含其余的命令行参数。
        //
        // 异常:
        //   System.NotSupportedException:
        //     系统不支持命令行参数。
        [SecuritySafeCritical]
        public static string[] GetCommandLineArgs();
        //
        // 摘要:
        //     从当前进程检索环境变量的值。
        //
        // 参数:
        //   variable:
        //     环境变量名。
        //
        // 返回结果:
        //     variable 指定的环境变量的值;或者如果找不到环境变量,则返回 null。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     variable 为 null。
        //
        //   System.Security.SecurityException:
        //     调用方不具有执行此操作所需的权限。
        [SecuritySafeCritical]
        public static string GetEnvironmentVariable(string variable);
        //
        // 摘要:
        //     从当前进程或者从当前用户或本地计算机的 Windows 操作系统注册表项检索环境变量的值。
        //
        // 参数:
        //   variable:
        //     环境变量名。
        //
        //   target:
        //     System.EnvironmentVariableTarget 值之一。
        //
        // 返回结果:
        //     variable 和 target 参数指定的环境变量的值;或者如果找不到环境变量,则返回 null。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     variable 为 null。
        //
        //   System.NotSupportedException:
        //     target 是 System.EnvironmentVariableTarget.User 或 System.EnvironmentVariableTarget.Machine,当前操作系统为
        //     Windows 95、Windows 98 或 Windows Me。
        //
        //   System.ArgumentException:
        //     target 不是有效的 System.EnvironmentVariableTarget 值。
        //
        //   System.Security.SecurityException:
        //     调用方不具有执行此操作所需的权限。
        [SecuritySafeCritical]
        public static string GetEnvironmentVariable(string variable, EnvironmentVariableTarget target);
        //
        // 摘要:
        //     从当前进程检索所有环境变量名及其值。
        //
        // 返回结果:
        //     包含所有环境变量名及其值的字典;如果找不到任何环境变量,则返回空字典。
        //
        // 异常:
        //   System.Security.SecurityException:
        //     调用方不具有执行此操作所需的权限。
        //
        //   System.OutOfMemoryException:
        //     缓冲区内存不足。
        [SecuritySafeCritical]
        public static IDictionary GetEnvironmentVariables();
        //
        // 摘要:
        //     从当前进程或者从当前用户或本地计算机的 Windows 操作系统注册表项检索所有环境变量名及其值。
        //
        // 参数:
        //   target:
        //     System.EnvironmentVariableTarget 值之一。
        //
        // 返回结果:
        //     包含 target 参数所指定的源中所有环境变量名及其值的字典;否则,如果找不到任何环境变量,则返回空字典。
        //
        // 异常:
        //   System.Security.SecurityException:
        //     调用方没有为 target 的指定值执行此操作所需具备的权限。
        //
        //   System.NotSupportedException:
        //     此方法不能用在 Windows 95 或 Windows 98 平台上。
        //
        //   System.ArgumentException:
        //     target 包含非法值。
        [SecuritySafeCritical]
        public static IDictionary GetEnvironmentVariables(EnvironmentVariableTarget target);
        //
        // 摘要:
        //     获取由指定枚举标识的系统特殊文件夹的路径。
        //
        // 参数:
        //   folder:
        //     标识系统特殊文件夹的枚举常数。
        //
        // 返回结果:
        //     如果指定的系统特殊文件夹实际存在于您的计算机上,则为到该文件夹的路径;否则为空字符串 ("")。如果操作系统未创建文件夹、已删除现有文件夹,或者文件夹是不对应物理路径的虚拟目录(例如“我的电脑”),则该文件夹不会实际存在。
        //
        // 异常:
        //   System.ArgumentException:
        //     folder 不是 System.Environment.SpecialFolder 的成员。
        //
        //   System.PlatformNotSupportedException:
        //     当前平台不受支持。
        [SecuritySafeCritical]
        public static string GetFolderPath(Environment.SpecialFolder folder);
        //
        // 摘要:
        //     获取由指定枚举标识的系统特殊文件夹的路径,并使用用于访问特殊文件夹的指定选项。
        //
        // 参数:
        //   folder:
        //     标识系统特殊文件夹的枚举常数。
        //
        //   option:
        //     指定用于访问特殊文件夹的选项。
        //
        // 返回结果:
        //     如果指定的系统特殊文件夹实际存在于您的计算机上,则为到该文件夹的路径;否则为空字符串 ("")。如果操作系统未创建文件夹、已删除现有文件夹,或者文件夹是不对应物理路径的虚拟目录(例如“我的电脑”),则该文件夹不会实际存在。
        //
        // 异常:
        //   System.ArgumentException:
        //     folder 不是 System.Environment.SpecialFolder. 的成员。
        //
        //   System.PlatformNotSupportedException:
        //     System.PlatformNotSupportedException
        [SecuritySafeCritical]
        public static string GetFolderPath(Environment.SpecialFolder folder, Environment.SpecialFolderOption option);
        //
        // 摘要:
        //     返回包含当前计算机中的逻辑驱动器名称的字符串数组。
        //
        // 返回结果:
        //     字符串数组,其中的每个元素都包含逻辑驱动器名称。例如,如果计算机的硬盘是第一个逻辑驱动器,则返回的第一个元素是“C:\”。
        //
        // 异常:
        //   System.IO.IOException:
        //     发生 I/O 错误。
        //
        //   System.Security.SecurityException:
        //     调用方没有所需的权限。
        [SecuritySafeCritical]
        public static string[] GetLogicalDrives();
        //
        // 摘要:
        //     创建、修改或删除当前进程中存储的环境变量。
        //
        // 参数:
        //   variable:
        //     环境变量名。
        //
        //   value:
        //     要分配给 variable 的值。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     variable 为 null。
        //
        //   System.ArgumentException:
        //     variable 包含零长度字符串、起始十六进制零字符 (0x00) 或等号(“=”)。- 或 -variable 或 value 的长度大于等于
        //     32,767 个字符。- 或 -在执行此操作的过程中发生错误。
        //
        //   System.Security.SecurityException:
        //     调用方不具有执行此操作所需的权限。
        [SecuritySafeCritical]
        public static void SetEnvironmentVariable(string variable, string value);
        //
        // 摘要:
        //     创建、修改或删除当前进程中或者为当前用户或本地计算机保留的 Windows 操作系统注册表项中存储的环境变量。
        //
        // 参数:
        //   variable:
        //     环境变量名。
        //
        //   value:
        //     要分配给 variable 的值。
        //
        //   target:
        //     System.EnvironmentVariableTarget 值之一。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     variable 为 null。
        //
        //   System.ArgumentException:
        //     variable 包含零长度字符串、起始十六进制零字符 (0x00) 或等号(“=”)。- 或 -variable 的长度大于等于 32,767
        //     个字符。- 或 -target 不是 System.EnvironmentVariableTarget 枚举的成员。- 或 -target 为 System.EnvironmentVariableTarget.Machine
        //     或 System.EnvironmentVariableTarget.User,并且 variable 的长度大于等于 255。- 或 -target
        //     为 System.EnvironmentVariableTarget.Process,并且 value 的长度大于等于 32,767 个字符。-
        //     或 -在执行此操作的过程中发生错误。
        //
        //   System.NotSupportedException:
        //     target 是 System.EnvironmentVariableTarget.User 或 System.EnvironmentVariableTarget.Machine,当前操作系统为
        //     Windows 95、Windows 98 或 Windows Me。
        //
        //   System.Security.SecurityException:
        //     调用方不具有执行此操作所需的权限。
        [SecuritySafeCritical]
        public static void SetEnvironmentVariable(string variable, string value, EnvironmentVariableTarget target);

        // 摘要:
        //     指定用于检索系统特殊文件夹的目录路径的枚举常数。
        [ComVisible(true)]
        public enum SpecialFolder
        {
            // 摘要:
            //     逻辑桌面,而不是物理文件系统位置。
            Desktop = 0,
            //
            // 摘要:
            //     包含用户程序组的目录。
            Programs = 2,
            //
            // 摘要:
            //     用作文档的公共储存库的目录。
            Personal = 5,
            //
            // 摘要:
            //     “我的文档”文件夹。
            MyDocuments = 5,
            //
            // 摘要:
            //     用作用户收藏夹项的公共储存库的目录。
            Favorites = 6,
            //
            // 摘要:
            //     对应于用户的“启动”程序组的目录。
            Startup = 7,
            //
            // 摘要:
            //     包含用户最近使用过的文档的目录。
            Recent = 8,
            //
            // 摘要:
            //     包含“发送”菜单项的目录。
            SendTo = 9,
            //
            // 摘要:
            //     包含“开始”菜单项的目录。
            StartMenu = 11,
            //
            // 摘要:
            //     “我的音乐”文件夹。
            MyMusic = 13,
            //
            // 摘要:
            //     文件系统目录,充当属于某个用户的视频的存储库。
            MyVideos = 14,
            //
            // 摘要:
            //     用于物理上存储桌面上的文件对象的目录。
            DesktopDirectory = 16,
            //
            // 摘要:
            //     “我的电脑”文件夹。
            MyComputer = 17,
            //
            // 摘要:
            //     文件系统目录,包含“网上邻居”虚拟文件夹中可能存在的链接对象。
            NetworkShortcuts = 19,
            //
            // 摘要:
            //     包含字体的虚拟文件夹。
            Fonts = 20,
            //
            // 摘要:
            //     用作文档模板的公共储存库的目录。
            Templates = 21,
            //
            // 摘要:
            //     文件系统目录,包含在所有用户的“开始”菜单上都出现的程序和文件夹。此特殊文件夹仅对 Windows NT 系统有效。
            CommonStartMenu = 22,
            //
            // 摘要:
            //     存放多个应用程序共享的组件的文件夹。此特殊文件夹仅对 Windows NT、Windows 2000 和 Windows XP 系统有效。
            CommonPrograms = 23,
            //
            // 摘要:
            //     文件系统目录,包含在所有用户的“启动”文件夹中都出现的程序。此特殊文件夹仅对 Windows NT 系统有效。
            CommonStartup = 24,
            //
            // 摘要:
            //     文件系统目录,包含在所有用户桌面上出现的文件和文件夹。此特殊文件夹仅对 Windows NT 系统有效。
            CommonDesktopDirectory = 25,
            //
            // 摘要:
            //     目录,它用作当前漫游用户的应用程序特定数据的公共储存库。
            ApplicationData = 26,
            //
            // 摘要:
            //     文件系统目录,包含“打印机”虚拟文件夹中可能存在的链接对象。
            PrinterShortcuts = 27,
            //
            // 摘要:
            //     目录,它用作当前非漫游用户使用的应用程序特定数据的公共储存库。
            LocalApplicationData = 28,
            //
            // 摘要:
            //     用作 Internet 临时文件的公共储存库的目录。
            InternetCache = 32,
            //
            // 摘要:
            //     用作 Internet Cookie 的公共储存库的目录。
            Cookies = 33,
            //
            // 摘要:
            //     用作 Internet 历史记录项的公共储存库的目录。
            History = 34,
            //
            // 摘要:
            //     目录,它用作所有用户使用的应用程序特定数据的公共储存库。
            CommonApplicationData = 35,
            //
            // 摘要:
            //     Windows 目录或 SYSROOT。它与 %windir% 或 %SYSTEMROOT% 环境变量相对应。
            Windows = 36,
            //
            // 摘要:
            //     “System”目录。
            System = 37,
            //
            // 摘要:
            //     “Program files”目录。
            ProgramFiles = 38,
            //
            // 摘要:
            //     “我的图片”文件夹。
            MyPictures = 39,
            //
            // 摘要:
            //     用户的配置文件文件夹。应用程序不应在此级别上创建文件或文件夹;它们应将其数据放在 System.Environment.SpecialFolder.ApplicationData
            //     所引用的位置之下。
            UserProfile = 40,
            //
            // 摘要:
            //     Windows“System”文件夹。
            SystemX86 = 41,
            //
            // 摘要:
            //     “Program Files”文件夹。
            ProgramFilesX86 = 42,
            //
            // 摘要:
            //     用于应用程序间共享的组件的目录。
            CommonProgramFiles = 43,
            //
            // 摘要:
            //     “Program Files”文件夹。
            CommonProgramFilesX86 = 44,
            //
            // 摘要:
            //     文件系统目录,包含所有用户都可以使用的模板。此特殊文件夹仅对 Windows NT 系统有效。
            CommonTemplates = 45,
            //
            // 摘要:
            //     文件系统目录,包含所有用户共有的文档。此特殊文件夹仅对装有 Shfolder.dll 的 Windows NT 系统、Windows 95 和 Windows
            //     98 系统有效。
            CommonDocuments = 46,
            //
            // 摘要:
            //     文件系统目录,包含计算机所有用户的管理工具。
            CommonAdminTools = 47,
            //
            // 摘要:
            //     文件系统目录,用于存储各个用户的管理工具。Microsoft Management Console (MMC) 会将自定义的控制台保存在此目录中,并且此目录将随用户一起漫游。
            AdminTools = 48,
            //
            // 摘要:
            //     文件系统目录,充当所有用户共有的音乐文件的存储库。
            CommonMusic = 53,
            //
            // 摘要:
            //     文件系统目录,充当所有用户共有的图像文件的存储库。
            CommonPictures = 54,
            //
            // 摘要:
            //     文件系统目录,充当所有用户共有的视频文件的存储库。
            CommonVideos = 55,
            //
            // 摘要:
            //     文件系统目录,包含资源数据。
            Resources = 56,
            //
            // 摘要:
            //     文件系统目录,包含本地化资源数据。
            LocalizedResources = 57,
            //
            // 摘要:
            //     为了实现向后兼容,Windows Vista 中可以识别此值,但该特殊文件夹本身已不再使用。
            CommonOemLinks = 58,
            //
            // 摘要:
            //     文件系统目录,充当等待写入 CD 的文件的临时区域。
            CDBurning = 59,
        }

        // 摘要:
        //     指定用于获取特殊文件夹路径的选项。
        public enum SpecialFolderOption
        {
            // 摘要:
            //     返回路径,但不验证该路径是否存在。如果文件夹位于网络上,则指定此选项可以缩短延隔时间。
            None = 0,
            //
            // 摘要:
            //     如果文件夹尚未存在,则强制创建它。
            DoNotVerify = 16384,
            //
            // 摘要:
            //     验证文件夹的路径。如果文件夹不存在,则返回空字符串。这是默认行为。
            Create = 32768,
        }
    }
}

猜你喜欢

转载自blog.csdn.net/wqq1027/article/details/84950637
今日推荐