zoukankan      html  css  js  c++  java
  • [转载]在.Net Framework中获得系统环境信息(转)

    托管代码: 运用 System.Environment.GetFolderPath函数,通过指定我们想要获取的“已知文件夹”为参数,从而获取相应的文件夹的正确路径。
    •   Environment.SpecialFolder.CommonApplicationData – 所有用户都可以访问的使用程序数据适合放置在这个目录下。
    •   Environment.SpecialFolder.LocalApplicationData – 每个用户单独访问的使用程序数据适合放置在这个目录下。
    •   Environment.SpecialFolder.ApplicationData – 每个用户单独访问的使用程序数据适合放置在这个目录下。这是“随身文件夹”。

    机器名

    代码:

    Environment.MachineName

    结果示例:

    "BOBOPO.COM"

    用户名

    代码:

    Environment.UserName

    结果示例:

    "Bobopo"

    CPU数量

    代码:

    Environment.ProcessorCount

    结果示例:

    1

    操作系统内部版本信息

    代码:

    Environment.OSVersion.VersionString

    结果示例:

    "Microsoft Windows NT 5.1.2600 Service Pack 2"

    操作系统版本号

    代码:

    Environment.OSVersion.Version.ToString

    结果示例:

    "5.1.2600.131072"

    操作系统Service Pack号

    代码:

    Environment.OSVersion.ServicePack

    结果示例:

    "Service Pack 2"

    .Net Framework版本号

    代码:

    Environment.Version.ToString

    结果示例:

    "2.0.50727.1433"

    系统目录

    Windows操作系统主目录

    代码:

    Directory.GetParent(Environment.SystemDirectory).FullName

    结果示例:

    "C:WINDOWS"

    System32系统目录

    代码:

    Environment.SystemDirectory

    结果示例:

    "C:WINDOWSsystem32"

    Program Files程序文件目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)

    结果示例:

    "C:Program Files"

    Common Files程序公共文件目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles)

    结果示例:

    "C:Program FilesCommon Files"

    所有用户公用的Application Data程序数据目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

    结果示例:

    "C:Documents and SettingsAll UsersApplication Data"

    用户目录

    Application Data程序数据目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

    结果示例:

    "C:Documents and SettingsBobopoApplication Data"

    Desktop桌面目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

    结果示例:

    "C:Documents and SettingsBobopoDesktop"

    Cookies目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.Cookies)

    结果示例:

    "C:Documents and SettingsBobopoCookies"

    Favorites个人爱好目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

    结果示例:

    "C:Documents and SettingsBobopoFavorites"

    My Documents我的文档目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

    结果示例:

    "C:Documents and SettingsBobopoMy Documents"

    Start Menu开始菜单目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)

    结果示例:

    "C:Documents and SettingsBobopoStart Menu"

    Recent最近访问目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.Recent)

    结果示例:

    "C:Documents and SettingsBobopoRecent"

    Templates文档模板目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.Templates)

    结果示例:

    "C:Documents and SettingsBobopoTemplates"

    Local Settings本地设定的Application Data目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

    结果示例:

    "C:Documents and SettingsBobopoLocal SettingsApplication Data"

    History访问历史目录

    代码:

    Environment.GetFolderPath(Environment.SpecialFolder.History)

    结果示例:

    "C:Documents and SettingsBobopoLocal SettingsHistory"

    操作系统名称

    似乎.Net中并没有一种直接的方法获得操作系统的名称,至少我没有找到。不过可以通过Environment.OSVersion中的内部版本号来推断出操作系统的名称。

    原理

    与操作系统名称相关的Environment.OSVersion属性如下:

    • Platform: 可以用来推断Windows 3.1系列、Windows 95系列和Windows NT系列。
    • Version.Major: 可以用来推断产品系列中的大版本。
    • Version.Minor: 可以用来推断大版本中的小版本。

    具体的推断关系如下表所示:

    操作系统名称PlatformVersion.MajorVersion.Minor
    Windows 3.1 0 ? ?
    Windows 95 1 4 0
    Windows 98 1 4 10
    Windows Me 1 4 90
    Windows NT 3.51 2 3 51
    Windows NT 4.0 2 4 0
    Windows 2000 2 5 0
    Windows XP 2 5 1
    Windows 2003 2 5 2
    Windows Vista 2 6 0
    操作体统名称和OSVersion参数的对应关系

    需要指出的是,目前尚未发布的Windows 2008和Windows Vista具有相同的特征,所以用这种方法无法区分这两个版本。

    可以用下面的函数来计算出操作系统的名称。

    Public Shared Function GetOSVersionText() As String

    Dim v As Version = Environment.OSVersion.Version

    Select Case Environment.OSVersion.Platform

    Case PlatformID.Win32S : Return "3.1"

    Case PlatformID.Win32Windows

    Select Case v.Minor

    Case 0 : Return "95"

    Case 10 : Return "98"

    Case 90 : Return "Me"

    End Select

    Case PlatformID.Win32NT

    Select Case v.Major

    Case 3 : Return "NT 3.51"

    Case 4 : Return "NT 4.0"

    Case 5

    Select Case v.Minor

    Case 0 : Return "2000"

    Case 1 : Return "XP"

    Case 2 : Return "2003"

    End Select

    Case 6 : Return "Vista"

    End Select

    Case PlatformID.WinCE

    Return "CE " & v.Major.ToString & "." & v.Minor.ToString

    End Select

    Return "Unknown"

    End Function

    操作系统名称

    代码:

    "Microsoft Windows " & GetOSVersionText()

    结果示例:

    "Microsoft Windows XP"

    带Service Pack号的操作系统名称

    代码:

    "Microsoft Windows " & GetOSVersionText() & " " & Environment.OSVersion.ServicePack

    结果示例:

    "Microsoft Windows XP Service Pack 2"
  • 相关阅读:
    Android Static分析
    hdoj 1285 确定比赛名次 【拓扑排序】
    Sqoop2安装记录
    Activiti源代码分析
    SpringBoard 无法启动应用程序(错误:-3)
    关于public、private、protected、internal
    Java基础——Statement与PrepareStatement
    无password身份验证:安全、简单且部署高速
    说说Linux文件权限那些事儿
    Android中Service概述
  • 原文地址:https://www.cnblogs.com/xchangli/p/3653689.html
Copyright © 2011-2022 走看看