• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

桌面置顶显示服务器信息

其他 Giant Liu 2708次浏览 0个评论

前言

在手头上做的项目很多,管理的服务器也很多。
一个项目最少也得2+以上的服务器。
在各个项目部署的时候,要来回切换不同的服务器。
搞着搞着就不知道当前远程在哪台服务器了。
所以希望在电脑桌面上可以很快的知道当前远程连接到了哪台服务器

设置背景桌面

最开始的时候,我们在每台服务器的背景桌面图片。
在图片上把当前服务器信息都做到图片上,
然后把这个图片设置为服务器的背景图片。
这样一远程到服务器上,就可以知道当前是哪台服务器了

然而这种方式有很大的弊端。
就是当我把一些应用最大化之后,背景图片就已经完全看不到了。
而且只能显示一些静态信息。比如机器名,系统版本,IP
还有就是我们99%的时间是看不到背景图片的。
所以这种方式有用,但是也很鸡肋。

实现功能

所以在休息的时候,自己有些WinForm的知识。
打算开发一个应用,可以在电脑桌面的右下角
实时显示当前服务器的信息。
比如机器名,系统版本,登录用户,内存,CPU,磁盘,IP
当有应用最大化后,这些信息也在最顶层显示出来
效果图如下
桌面置顶显示服务器信息
桌面置顶显示服务器信息

关键代码

设置Form

this.BackColor = System.Drawing.Color.White;//设置背景
this.ClientSize = new System.Drawing.Size(1024, 768);//界面大小
this.ControlBox = false;//不显示标题栏
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;//无边框
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form1";
this.ShowIcon = false;
this.ShowInTaskbar = false;//不显示在任务栏
this.TopMost = true;//置顶
this.TransparencyKey = System.Drawing.Color.White;//透明
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;//最大化显示

获取服务器信息

string strQuery = "select Caption,CSName,TotalVisibleMemorySize from win32_OperatingSystem";
SelectQuery queryOS = new SelectQuery(strQuery);
string Caption = "";
string CSName = "";
ulong TotalVisibleMemorySize = 0;
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(queryOS))
{
    using (var queryResult = searcher.Get())
    {
        foreach (var os in queryResult)
        {
            Caption = (string)os["Caption"];
            CSName = (string)os["CSName"];
            TotalVisibleMemorySize = (ulong)os["TotalVisibleMemorySize"];
        }
    }
}
return new OSInfoModel() { Caption = Caption, CSName = CSName, TotalVisibleMemorySize = TotalVisibleMemorySize };

获取更多服务器信息,请参考
https://docs.microsoft.com/en-us/previous-versions/aa394084(v=vs.85)

获取IP

var listIP = new List<String>();
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
{
    if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
    {
        foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
        {
            if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
            {
                var ipStr = ip.Address.ToString();
                if (!(ipStr.StartsWith("169") || ipStr.EndsWith(".1") || ipStr.EndsWith(".255")))
                    listIP.Add(ipStr);
            }
        }
    }
}
return String.Join(Environment.NewLine, listIP);

获取动态信息

//获取CPU使用率
this.CpuPC = new PerformanceCounter("Processor", "% Processor Time", "_Total");
this.CpuPC.NextValue()
//获取可用内存
this.RamPC = new PerformanceCounter("Memory", "Available KBytes");
this.RamPC.NextValue()
//获取磁盘性能
this.DiskPC = new PerformanceCounter("PhysicalDisk", "% Idle Time", "_Total");
this.DiskPC.NextValue()

关于获取更多服务器性能信息。可参考“性能监视器”
桌面置顶显示服务器信息

下载

源代码
程序下载
源文链接


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明桌面置顶显示服务器信息
喜欢 (0)

您必须 登录 才能发表评论!

加载中……