在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例Windows系统编程 → 通过C#自带的头文件(类)获取Windows系统信息

通过C#自带的头文件(类)获取Windows系统信息

Windows系统编程

下载此实例
  • 开发语言:C#
  • 实例大小:0.70M
  • 下载次数:69
  • 浏览次数:549
  • 发布时间:2020-07-23
  • 实例类别:Windows系统编程
  • 发 布 人:gfdgd_xi
  • 文件格式:.zip
  • 所需积分:0
 相关标签: windows window系统信息 C#

实例介绍

【实例简介】通过C#通过的类获取系统/硬件信息 

【实例截图】

【核心代码】

/*
 *******************************************************************************************
 * 软件信息:                                                                              *
 *     制作/更改时间:2020年7月23日19:08:58                                                *
 *     作者:gfdgd xi                                                                      *
 *     程序编辑/调试平台(最近一次):Visual Studio 2019 Professional 以及 Windows 8.1     *
 *     程序目的:通过C#通过的类获取系统/硬件信息                                           *
 *******************************************************************************************
 */
// 导入头文件
// using System.Collections.Generic;
// using System.ComponentModel;
// using System.Data;
// using System.Drawing;
// using System.Linq;
// using System.Text;
// 上面头文件可以不用,所以注释掉了
using System;
using System.Windows.Forms;
using System.Threading;
using Microsoft.VisualBasic.Devices;

namespace WindowsFormsApp4
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
			CheckForIllegalCrossThreadCalls = false; // 不让程序出现“Cross-thread operation not valid”错误
			Thread thread = new Thread(start); thread.Start(); // 创建线程一个线程加载系统信息和工具箱列表
		}
		private void start() // 这个线程用于加载系统信息和工具箱列表
		{
			system.Items.Clear(); // 清空系统检测列表
			/*通过ComputerInfo类获取系统信息
			 加载什么内容都标着*/
			Computer info = new Computer();
			system.Items.Add("系统全称:" info.Info.OSFullName);
			system.Items.Add("系统平台:"   info.Info.OSPlatform);
			system.Items.Add("系统版本:"   info.Info.OSVersion);
			system.Items.Add("计算机名:"   info.Name);
			system.Items.Add("物理内存大小:"   info.Info.TotalPhysicalMemory);
			system.Items.Add("虚拟内存大小:"   info.Info.TotalVirtualMemory);
			system.Items.Add("数字锁定是否开启:"   info.Keyboard.NumLock);
			system.Items.Add("大写锁定是否开启:"   info.Keyboard.CapsLock);
			system.Items.Add("滚动锁定是否开启:"   info.Keyboard.ScrollLock);
			system.Items.Add("鼠标是否开启了左右键调换:"   info.Mouse.ButtonsSwapped);
			system.Items.Add("鼠标是否有滚轮:"   info.Mouse.WheelExists);
			system.Items.Add("鼠标滚轮旋转一下所滚动的行数:"   info.Mouse.WheelScrollLines);
			system.Items.Add("电脑是否连接网络:"   info.Network.IsAvailable);
			system.Items.Add("主屏幕分辨率:"   info.Screen.Bounds.Width   "×"   info.Screen.Bounds.Height);
			/*用Environment加载系统信息
			 加载什么内容都标着*/
			system.Items.Add("CPU处理器数量:"   Environment.ProcessorCount);
			system.Items.Add("64位操作系统:"   Environment.Is64BitOperatingSystem);
			system.Items.Add("当前系统的SP版本:"   Environment.OSVersion.ServicePack);
			system.Items.Add("系统目录所在位置:"   Environment.SystemDirectory);
			system.Items.Add("当前登录用户名称:"   Environment.UserName);
			var va = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User);
			system.Items.Add("—————当前用户环境变量列表—————"); // 获取用户环境变量列表
			foreach(var k in va.Keys)
			{
				system.Items.Add(k.ToString()   "="   va[k].ToString());
			}
			system.Items.Add("————————————————————");
			/*使用SystemInformation类获取用户信息
			 获取什么内容都标着*/
			system.Items.Add("操作系统的启动方式:"   SystemInformation.BootMode);
			system.Items.Add("窗口标题栏中按钮的标准尺寸:"   SystemInformation.CaptionButtonSize.Width   "×" SystemInformation.CaptionButtonSize.Height);
			system.Items.Add("窗口标题栏的标准高度:"   SystemInformation.CaptionHeight);
			system.Items.Add("输入光标的闪烁时间:"   SystemInformation.CaretBlinkTime);
			system.Items.Add("双击时,第一次点击和第二次点击最长的毫秒数:"   SystemInformation.DoubleClickTime);
			system.Items.Add("是否启用高对比度模式:"   SystemInformation.HighContrast);
			system.Items.Add("是否启用字体平滑:"   SystemInformation.IsFontSmoothingEnabled);
			system.Items.Add("键盘重复速度设置:"   SystemInformation.KeyboardSpeed);
			system.Items.Add("系统是否能使用希伯来语和阿拉伯语:"   SystemInformation.MidEastEnabled);
			system.Items.Add("显示器数量:"   SystemInformation.MonitorCount);
			system.Items.Add("鼠标的按键数:"   SystemInformation.MouseButtons);
			system.Items.Add("获取当前鼠标的速度:"   SystemInformation.MouseSpeed);
			system.Items.Add("当前电池状态:"   SystemInformation.PowerStatus.BatteryChargeStatus);
			system.Items.Add("预计电池充满电的时间:"   SystemInformation.PowerStatus.BatteryFullLifetime);
			system.Items.Add("电池剩余电量的百分比:"   SystemInformation.PowerStatus.BatteryLifePercent);
			system.Items.Add("电池预计的使用时间:"   SystemInformation.PowerStatus.BatteryLifeRemaining);
			system.Items.Add("当前的电源状态:"   SystemInformation.PowerStatus.PowerLineStatus);
			switch(SystemInformation.ScreenOrientation) // 获取主屏幕的旋转度数
			{
				case ScreenOrientation.Angle0:
					system.Items.Add("主屏幕旋转角度:0°");
					break;
				case ScreenOrientation.Angle90:
					system.Items.Add("主屏幕旋转角度:90°");
					break;
				case ScreenOrientation.Angle180:
					system.Items.Add("主屏幕旋转角度:180°");
					break;
				case ScreenOrientation.Angle270:
					system.Items.Add("主屏幕旋转角度:270°");
					break;
				default:
					system.Items.Add("主屏幕旋转角度:旋转角度未知(不明)");
					break;
			}
			system.Items.Add("屏幕的工作区域:"   SystemInformation.WorkingArea.Width   "×"   SystemInformation.WorkingArea.Height);
		}

		private void Form1_FormClosing(object sender, FormClosingEventArgs e)
		{
			e.Cancel = true; // 先不让程序那么快退出
			if (MessageBox.Show("你确定要退出吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
				// 判断用户是不是选择确定,如果选择了就
			{
				e.Cancel = false;
			}
		}
		private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
		{
			Close(); // 触发退出事件
		}

        private void button1_Click(object sender, EventArgs e)
        {
			Thread thread = new Thread(start); thread.Start(); // 启动系统检测进程
        }
    }
}

实例下载地址

通过C#自带的头文件(类)获取Windows系统信息

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警