C# Winfrom实现的肺炎全国疫情实时信息图

运行结果:

5670f079a72c0053a0fd2bcdb328b563.jpeg

using System;
using System.Drawing;
using System.Text;
using NSoup;
using NSoup.Nodes;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;
using System.Windows.Forms;namespace Pneumonia
{public partial class MainForm : DevComponents.DotNetBar.OfficeForm{static string confirmedCount, suspectedCount, deadCount, curedCount, updateTime,dataUpdateTime;static string url = "https://3g.dxy.cn/newh5/view/pneumonia";static int count = 0;static Document doc;public MainForm()
{this.EnableGlass = false;InitializeComponent();this.SizeChanged += new Resize(this).Form1_Resize;  //窗口自适应代码}private void MainForm_Load(object sender, EventArgs e)
{timer1.Enabled = true;timer1.Interval = 1;timer1.Start();WebClient wc = new WebClient();byte[] htmlData = wc.DownloadData(url);string html = Encoding.UTF8.GetString(htmlData);logWrite(html);//将网页内容写入txt文件,以方便查看toolStripStatusLabel1.Text = DateTime.Now.ToString();}private void timer1_Tick(object sender, EventArgs e)
{dataUpdateTime = DateTime.Now.ToString();count++;timer1.Interval = 300000;GetData();lbl1.Text = "☛ 病毒: " + regularMatchStr("getStatisticsService", "virus\":\"(.+?)\",");lbl2.Text = "☛ 传染源: " + regularMatchStr("getStatisticsService", "infectSource\":\"(.+?)\",");lbl3.Text = "☛ 传播途径: " + regularMatchStr("getStatisticsService", "passWay\":\"(.+?)\",");lbl4.Text ="☛ "+regularMatchStr("getStatisticsService", "remark1\":\"(.+?)\",");lbl5.Text ="☛ "+regularMatchStr("getStatisticsService", "remark2\":\"(.+?)\",");Image map =UrlToImage("https://img1.dxycdn.com/2020/0201/450/3394153392393266839-135.png");pictureBox1.Image = map;Image chart = UrlToImage("https://img1.dxycdn.com/2020/0201/693/3394145745204021706-135.png");pictureBox2.Image = chart;updateTimeLbl.Text = "截至 " + updateTime + " 全国数据统计";confirmedLbl.Text = confirmedCount;suspectedLbl.Text = suspectedCount;deadLbl.Text = deadCount;curedLbl.Text = curedCount;}public static void GetData()
{//直接通过url来获取Document对象doc = NSoupClient.Connect(url).Get();//先获取id为artContent的元素,再获取所有的p标签updateTime = ConvertStringToDateTime(regularMatchStr("getStatisticsService", "modifyTime\":(.+?),")).ToString();confirmedCount = regularMatchStr("getStatisticsService", "confirmedCount\":(.+?),");suspectedCount = regularMatchStr("getStatisticsService", "suspectedCount\":(.+?),");deadCount = regularMatchStr("getStatisticsService", "deadCount\":(.+?),");curedCount = regularMatchStr("getStatisticsService", "curedCount\":(.+?),");}#region 下载图片到Imagepublic static Image UrlToImage(string url)
{WebClient mywebclient = new WebClient();byte[] Bytes = mywebclient.DownloadData(url);using (MemoryStream ms = new MemoryStream(Bytes)){Image outputImg = Image.FromStream(ms);return outputImg;}}#endregionpublic static DateTime ConvertStringToDateTime(string timeStamp)
{DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));long lTime = long.Parse(timeStamp + "0000");TimeSpan toNow = new TimeSpan(lTime);return dtStart.Add(toNow);}public static string regularMatchStr(string elementId, string regex)
{Element p = doc.GetElementById(elementId);Regex reg = new Regex(regex, RegexOptions.IgnoreCase);//例如我想提取line中的NAME值Match match = reg.Match(p.Html());string value = match.Groups[1].Value;return value;}public static void logWrite(string Message)
{if (!File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\log.txt"))File.Create(AppDomain.CurrentDomain.BaseDirectory + "\\log.txt").Close();string fileName = AppDomain.CurrentDomain.BaseDirectory + "\\log.txt";string content = DateTime.Now.ToLocalTime() + Message + "\r\n";StreamWriter sw = new StreamWriter(fileName, true);sw.Write(content);sw.Close(); sw.Dispose();}private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{if (e.Button == MouseButtons.Left)//判断鼠标的按键            {//点击时判断form是否显示,显示就隐藏,隐藏就显示               if (this.WindowState == FormWindowState.Normal){this.WindowState = FormWindowState.Minimized;this.Hide();}else if (this.WindowState == FormWindowState.Minimized){this.Show();this.WindowState = FormWindowState.Normal;this.Activate();}}else if (e.Button == MouseButtons.Right){//右键退出事件                if (MessageBox.Show("是否需要关闭程序?", "提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)//出错提示                {//关闭窗口                    DialogResult = DialogResult.No;Dispose();Close();}}}private void timer2_Tick(object sender, EventArgs e)
{toolStripStatusLabel1.Text = DateTime.Now.ToString() + "  刷新次数 : " + count + "  最新刷新时间 :" + dataUpdateTime;}private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{if (MessageBox.Show("是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK){// 关闭所有的线程this.Dispose();this.Close();}else{e.Cancel = true;}}private void MainForm_SizeChanged(object sender, EventArgs e)
{//判断是否选择的是最小化按钮if (WindowState == FormWindowState.Minimized){//隐藏任务栏区图标this.ShowInTaskbar = false;//图标显示在托盘区notifyIcon1.Visible = true;}}private void 退出ToolStripMenuItem_Click(object sender, EventArgs e){if (MessageBox.Show("是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK){// 关闭所有的线程this.Dispose();this.Close();}}private void 显示ToolStripMenuItem_Click(object sender, EventArgs e){WindowState = FormWindowState.Normal;}}
}

resize类

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace Pneumonia
{class Resize{private MainForm _form;public Resize(MainForm form){int count = form.Controls.Count * 2 + 2;float[] factor = new float[count];int i = 0;factor[i++] = form.Size.Width;factor[i++] = form.Size.Height;foreach (Control ctrl in form.Controls){factor[i++] = ctrl.Location.X / (float)form.Size.Width;factor[i++] = ctrl.Location.Y / (float)form.Size.Height;ctrl.Tag = ctrl.Size;}form.Tag = factor;this._form = form;}public void Form1_Resize(object sender, EventArgs e){float[] scale = (float[])this._form.Tag;int i = 2;foreach (Control ctrl in this._form.Controls) //panel的长宽增长到一个固定的值就不会再增长了,原因:Panel的宽和高上限是65535像素(https://blog.csdn.net/dufangfeilong/article/details/41805073?utm_source=blogxgwz5){ctrl.Left = (int)(this._form.Size.Width * scale[i++]);ctrl.Top = (int)(this._form.Size.Height * scale[i++]);ctrl.Width = (int)(this._form.Size.Width / (float)scale[0] * ((Size)ctrl.Tag).Width);ctrl.Height = (int)(this._form.Size.Height / (float)scale[1] * ((Size)ctrl.Tag).Height);}}}
}

C# Winform控件自适应窗体大小:方法1(推荐)

参考链接:https://www.cnblogs.com/PER10/p/11541568.html

需求:当窗体尺寸动态改变时,窗体中的各种控件(包括Panel以及Panel中的子控件)可以动态调节自身大小,以适应窗体内容比例。

方法:

第一步,新建一个类,代码如下:

class Resize{private Form _form;public Resize(Form form){int count = form.Controls.Count * 2 + 2;float[] factor = new float[count];int i = 0;factor[i++] = form.Size.Width;factor[i++] = form.Size.Height;foreach (Control ctrl in form.Controls){factor[i++] = ctrl.Location.X / (float)form.Size.Width;factor[i++] = ctrl.Location.Y / (float)form.Size.Height;ctrl.Tag = ctrl.Size;}form.Tag = factor;this._form = form;}public void Form1_Resize(object sender, EventArgs e){float[] scale = (float[])this._form.Tag;int i = 2;foreach (Control ctrl in this._form.Controls) //panel的长宽增长到一个固定的值就不会再增长了,原因:Panel的宽和高上限是65535像素(https://blog.csdn.net/dufangfeilong/article/details/41805073?utm_source=blogxgwz5){ctrl.Left = (int)(this._form.Size.Width * scale[i++]);ctrl.Top = (int)(this._form.Size.Height * scale[i++]);ctrl.Width = (int)(this._form.Size.Width / (float)scale[0] * ((Size)ctrl.Tag).Width);ctrl.Height = (int)(this._form.Size.Height / (float)scale[1] * ((Size)ctrl.Tag).Height);}}}第二步,在Form的初始化函数中使用这个类:public Form_StockCount(){InitializeComponent();this.SizeChanged += new Resize(this).Form1_Resize;  //窗口自适应代码}

C# Winform窗体和控件自适应大小:方法2

1.在项目中创建类AutoSizeForm

AutoSizeForm.cs文件代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CSharpFormApplication
{class AutoResizeForm{//(1).声明结构,只记录窗体和其控件的初始位置和大小。public struct controlRect{public int Left;public int Top;public int Width;public int Height;}//(2).声明 1个对象//注意这里不能使用控件列表记录 List nCtrl;,因为控件的关联性,记录的始终是当前的大小。//      public List oldCtrl= new List();//这里将西文的大于小于号都过滤掉了,只能改为中文的,使用中要改回西文public List<controlRect> oldCtrl = new List<controlRect>();int ctrlNo = 0;//1;//(3). 创建两个函数//(3.1)记录窗体和其控件的初始位置和大小,public void controllInitializeSize(Control mForm){controlRect cR;cR.Left = mForm.Left; cR.Top = mForm.Top; cR.Width = mForm.Width; cR.Height = mForm.Height;oldCtrl.Add(cR);//第一个为"窗体本身",只加入一次即可AddControl(mForm);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用//this.WindowState = (System.Windows.Forms.FormWindowState)(2);//记录完控件的初始位置和大小后,再最大化//0 - Normalize , 1 - Minimize,2- Maximize}private void AddControl(Control ctl){foreach (Control c in ctl.Controls){  //**放在这里,是先记录控件的子控件,后记录控件本身//if (c.Controls.Count > 0)//    AddControl(c);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用controlRect objCtrl;objCtrl.Left = c.Left; objCtrl.Top = c.Top; objCtrl.Width = c.Width; objCtrl.Height = c.Height;oldCtrl.Add(objCtrl);//**放在这里,是先记录控件本身,后记录控件的子控件if (c.Controls.Count > 0)AddControl(c);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用}}//(3.2)控件自适应大小,public void controlAutoSize(Control mForm){if (ctrlNo == 0){ //*如果在窗体的Form1_Load中,记录控件原始的大小和位置,正常没有问题,但要加入皮肤就会出现问题,因为有些控件如dataGridView的的子控件还没有完成,个数少//*要在窗体的Form1_SizeChanged中,第一次改变大小时,记录控件原始的大小和位置,这里所有控件的子控件都已经形成controlRect cR;//  cR.Left = mForm.Left; cR.Top = mForm.Top; cR.Width = mForm.Width; cR.Height = mForm.Height;cR.Left = 0; cR.Top = 0; cR.Width = mForm.PreferredSize.Width; cR.Height = mForm.PreferredSize.Height;oldCtrl.Add(cR);//第一个为"窗体本身",只加入一次即可AddControl(mForm);//窗体内其余控件可能嵌套其它控件(比如panel),故单独抽出以便递归调用}float wScale = (float)mForm.Width / (float)oldCtrl[0].Width;//新旧窗体之间的比例,与最早的旧窗体float hScale = (float)mForm.Height / (float)oldCtrl[0].Height;//.Height;ctrlNo = 1;//进入=1,第0个为窗体本身,窗体内的控件,从序号1开始AutoScaleControl(mForm, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用}private void AutoScaleControl(Control ctl, float wScale, float hScale){int ctrLeft0, ctrTop0, ctrWidth0, ctrHeight0;//int ctrlNo = 1;//第1个是窗体自身的 Left,Top,Width,Height,所以窗体控件从ctrlNo=1开始foreach (Control c in ctl.Controls){ //**放在这里,是先缩放控件的子控件,后缩放控件本身//if (c.Controls.Count > 0)//   AutoScaleControl(c, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用ctrLeft0 = oldCtrl[ctrlNo].Left;ctrTop0 = oldCtrl[ctrlNo].Top;ctrWidth0 = oldCtrl[ctrlNo].Width;ctrHeight0 = oldCtrl[ctrlNo].Height;//c.Left = (int)((ctrLeft0 - wLeft0) * wScale) + wLeft1;//新旧控件之间的线性比例//c.Top = (int)((ctrTop0 - wTop0) * h) + wTop1;c.Left = (int)((ctrLeft0) * wScale);//新旧控件之间的线性比例。控件位置只相对于窗体,所以不能加 + wLeft1c.Top = (int)((ctrTop0) * hScale);//c.Width = (int)(ctrWidth0 * wScale);//只与最初的大小相关,所以不能与现在的宽度相乘 (int)(c.Width * w);c.Height = (int)(ctrHeight0 * hScale);//ctrlNo++;//累加序号//**放在这里,是先缩放控件本身,后缩放控件的子控件if (c.Controls.Count > 0)AutoScaleControl(c, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用if (ctl is DataGridView){DataGridView dgv = ctl as DataGridView;Cursor.Current = Cursors.WaitCursor;int widths = 0;for (int i = 0; i < dgv.Columns.Count; i++){dgv.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells);  // 自动调整列宽  widths += dgv.Columns[i].Width;   // 计算调整列后单元列的宽度和                       }if (widths >= ctl.Size.Width)  // 如果调整列的宽度大于设定列宽  dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;  // 调整列的模式 自动  elsedgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;  // 如果小于 则填充  Cursor.Current = Cursors.Default;}}}}}2.在要自适应大小的Form中自定义全局类对象AutoResizeForm asc = new AutoResizeForm();3.在要自适应大小的Form的load事件和SizeChange事件中执行对象方法private void WidgetAutoResizeForm_Load(object sender, EventArgs e){asc.controllInitializeSize(this);}private void WidgetAutoResizeForm_SizeChanged(object sender, EventArgs e){asc.controlAutoSize(this);}From窗体代码:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace CSharpFormApplication
{public partial class WidgetAutoResizeForm : Form{AutoResizeForm asc = new AutoResizeForm();public WidgetAutoResizeForm(){InitializeComponent();}private void WidgetAutoResizeForm_Load(object sender, EventArgs e){asc.controllInitializeSize(this);}private void WidgetAutoResizeForm_SizeChanged(object sender, EventArgs e){asc.controlAutoSize(this);}}
}

https://www.cnblogs.com/AmatVictorialCuram/p/5066670.html

WinForm 之 窗口最小化到托盘及右键图标显示菜单

参考链接:https://www.cnblogs.com/xinaixia/p/6216670.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker (七)-部署容器

实战开始&#xff1a; 1 docker 部署 kafka 集群&#xff0c;并验证 参考 Docker搭建Kafka集群 优秀文档 2 docker 部署 mysql 参考上一篇docker(六) 3.docker 部署 zabbix 参考 docker部署zabbix 优秀文档 BUG&#xff1a;根据这篇文章部署后&#xff0c;发现zabbix-s…

vue封装el-table表格组件

先上效果图&#xff1a; 本文包含了具名插槽、作用域插槽、jsx语法三种&#xff1a; Render.vue&#xff08;很重要&#xff0c;必须有&#xff09;: <script> export default {name: "FreeRender",functional: true,props: {scope:Object,render: Functio…

6.2 数据库

本节介绍Android的数据库存储方式--SQLite的使用方法&#xff0c;包括&#xff1a;SQLite用到了哪些SQL语法&#xff0c;如何使用数据库管理操纵SQLitem&#xff0c;如何使用数据库帮助器简化数据库操作&#xff0c;以及如何利用SQLite改进登录页面的记住密码功能。 6.2.1 SQ…

如何取消和设置MultiIndex(pandas)

什么是多重索引&#xff1f; 多重索引是这样的。 有点烦&#xff0c;所以研究了如何摆脱它。 [如何取消] 对于df 中的列或行。 下面显示了两种方法。 #Index df.index df.index.get_level_values(0) df.index df.index.droplevel(1)#Column df.columns df.columns.get_l…

Word 文档中的图片另存为 .jpg 格式图片

Word 文档中的图片另存为 .jpg 格式图片 1. Office 按钮 -> 另存为2. 筛选过的网页 (*.htm;*.html)3. 查看生成文件夹References 1. Office 按钮 -> 另存为 2. 筛选过的网页 (*.htm;*.html) ​​​ 3. 查看生成文件夹 References [1] Yongqiang Cheng, https://yongq…

(十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)

简述 操作路径如下: 作用:通过逐步增加线程数来模拟用户并发访问。配置:设置This group will start、First,wait for 、Then start、Next , add等参数。使用场景:模拟逐步增长的并发访问,观察应用程序的性能变化。优点:适用于测试应用程序在逐步增加负载下的性能表现。…

全面总结!加速大模型推理的超全指南来了!

2023 年&#xff0c;大型语言模型&#xff08;LLM&#xff09;以其强大的生成、理解、推理等能力而持续受到高度关注。然而&#xff0c;训练和部署 LLM 非常昂贵&#xff0c;需要大量的计算资源和内存&#xff0c;因此研究人员开发了许多用于加速 LLM 预训练、微调和推理的方法…

BlackberryQ10 是可以安装 Android 4.3 应用的

BlackberryQ10 是可以安装 Android 4.3 应用的 最近淘了个 Q10 手机&#xff0c;非常稀罕它&#xff0c;拿着手感一流。这么好的东西&#xff0c;就想给它装点东西&#xff0c;但目前所有的应用都已经抛弃这个安卓版本了。 一、开发环境介绍 BlackBerry Q10 的 安卓版本是 4.…

NestJS入门8:拦截器

前文参考&#xff1a; NestJS入门1&#xff1a;创建项目 NestJS入门2&#xff1a;创建模块 NestJS入门3&#xff1a;不同请求方式前后端写法 NestJS入门4&#xff1a;MySQL typeorm 增删改查 NestJS入门5&#xff1a;加入Swagger NestJS入门6&#xff1a;日志中间件 Nes…

python-pyqt5-工具按钮(QToolButton)添加菜单(QMenu)

QToolButton提供了比普通按钮更丰富的功能。它可以显示一个图标、一个文本或二者结合&#xff0c;还支持各种样式和行为&#xff0c;例如弹出菜单或多种动作模式 样式 setToolButtonStyle(Qt.ToolButtonStyle) # 设置按钮样式风格# 参数Qt.ToolButtonIconOnly …

回显服务器

. 写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api,传输层提供协议,主要是两个: UDP,TCP,它们分别提供了一套不同的api,socket api. UDP和TCP UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工 一个客户端可以连接…

spring boot3参数校验基本用法

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途。 目录 前置条件 前言 导入依赖 使用介绍 配置检验规则 开启校验 使用注意 全局异常捕获返回友好提示信息 常用的校…

Leadmium TM Green AM dye,适用于流式细胞仪、荧光显微镜成像

文章关键词&#xff1a;铅离子(镉离子)绿色荧光探针&#xff0c;Leadmium TM Green AM dye&#xff0c;镉离子绿色荧光探针 一、基本信息 产品简介&#xff1a;Leadmium TM Green AM染料是一种高度特异性和高灵敏度的检测细胞内铅离子&#xff08;lead&#xff09;和镉&#…

qt-双臂SCARA机器人动画

qt-双臂SCARA机器人动画 一、演示效果二、核心程序三、下载链接 在Qt opengl中完成的双臂SCARA机器人的简单模拟。 一、演示效果 二、核心程序 #include "glwidget.h"#include <GL/glu.h>GLWidget::GLWidget(QWidget *parent) :QGLWidget(parent),pitch(30.…

js设计模式:适配器模式

作用: 可以将某种不同格式的数据转化为自己所期待的数据格式 或者对于一些存在兼容或者特殊处理的业务逻辑,可以进行一个适配 示例: //原始数据let oldData1 [{name: 王惊涛,age: 29},{name: 孙悟空,age: 800},{name: 嘉文四世,age: 27},{name: 关羽,age: 40},{name: 伊利丹…

【天衍系列 01】深入理解Flink的 FileSource 组件:实现大规模数据文件处理

文章目录 01 基本概念02 工作原理03 数据流实现04 项目实战4.1 项目结构4.2 maven依赖4.3 StreamFormat读取文件数据4.4 BulkFormat读取文件数据4.5 使用小结 05 数据源比较06 总结 01 基本概念 Apache Flink 是一个流式处理框架&#xff0c;被广泛应用于大数据领域的实时数据…

C# GTS四轴运动控制器实例(固高科技步进电机不带编码器)

注&#xff1a;由于电机不带编码器&#xff0c;无法做home和当前位置信息读取&#xff01; 功能&#xff1a; 三个轴的点位运动&#xff1a;前进后退&#xff0c;并分别显示每个轴的移动脉冲数(可以换算为距离)&#xff01; 开发环境&#xff1a;VS2017 硬件设备&#xff1a;固…

Vue-route核心知识整理

目录 1 相关理解 1.1 对 vue-router 的理解 1.2 对 SPA 应用的理解 1.3 对路由的理解 1.3.1 什么是路由&#xff1f; 1.3.2 路由的分类 2 几个注意点 3 路由的基本使用 4 嵌套 (多级) 路由 5 路由传参 5.1 query 方式传参 5.1.1 跳转路由并携带query参数&#xff0…

【项目】HTTP服务器

HTTP服务器 【项目】HTTP服务器项目介绍背景项目描述技术特点开发环境 网络协议栈HTTP协议特点URI & URL & URNURL格式HTTP请求与响应请求响应 CGI机制CGI的实现CGI的意义 日志封装TcpServer类线程池任务类CallBack回调方法类线程池类 封装HttpServer类主函数 封装HTTP…

Linux 内存top命令详解

通过top命令可以监控当前机器的内存实时使用情况&#xff0c;该命令的参数解释如下&#xff1a; 第一行 15:30:14 —— 当前系统时间 up 1167 days, 5:02 —— 系统已经运行的时长&#xff0c;格式为时:分 1 users ——当前有1个用户登录系统 load average: 0.00, 0.01, 0.05…