[转载]在.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: 可以用来推断大版本中的小版本。

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

操作体统名称和OSVersion参数的对应关系
操作系统名称PlatformVersion.MajorVersion.Minor
Windows 3.10??
Windows 95140
Windows 981410
Windows Me1490
Windows NT 3.512351
Windows NT 4.0240
Windows 2000250
Windows XP251
Windows 2003252
Windows Vista260

需要指出的是,目前尚未发布的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"

转载于:https://www.cnblogs.com/xchangli/p/3653689.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值