监控电脑CPU,内存,文件大小,硬盘空间,IP,用户名
public class MonitorTools
{
/// <summary>
/// 获取具体进程的内存,线程等参数情况
/// </summary>
/// <param name="processName"></param>
public static void getWorkingSet(string processName)
{
Process[] ps = Process.GetProcesses();
foreach (Process p in ps)
{
if (p.MainWindowHandle != null)
{
if (processName == p.ProcessName)
{
using (var process = Process.GetProcessesByName(processName)[])
using (var p1 = new PerformanceCounter("Process", "Working Set - Private", processName))
using (var p2 = new PerformanceCounter("Process", "Working Set", processName))
{
Console.WriteLine("{0}{1:N} KB", "工作集(进程类)", process.WorkingSet64 / );
Console.WriteLine("{0}{1:N} KB", "内存(专用工作集)", p1.NextValue() / );
Console.WriteLine(process.Threads.Count.ToString());//线程
Console.WriteLine(process.Id.ToString());//PID
}
}
}
}
} /// <summary>
/// 遍历获取所有硬盘的可用空间
/// </summary>
/// <returns></returns>
public static string GetDriveInfo()
{
string result = string.Empty;
foreach (DriveInfo item in DriveInfo.GetDrives())
{
if (item.DriveType == DriveType.Fixed)
{
result += string.Format("{0} 可用空间{1:N} \r\n", item.Name, item.AvailableFreeSpace / ( * ) + "MB");
}
}
return result;
} /// <summary>
/// 根据文件路径获得文件的大小信息
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static string GetFileSize(string filePath)
{
string length = string.Empty;
try
{
FileInfo file = new FileInfo(filePath);
if (file != null)
{
length = file.Length.ToString();
}
return length;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return string.Empty;
}
} //测试获取CPU,内存等运行情况
[DllImport("kernel32")]
public static extern void GetSystemInfo(ref CPU_INFO cpuinfo);
[DllImport("kernel32")]
public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo); //定义CPU的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct CPU_INFO
{
public uint dwOemId;
public uint dwPageSize;
public uint lpMinimumApplicationAddress;
public uint lpMaximumApplicationAddress;
public uint dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public uint dwProcessorLevel;
public uint dwProcessorRevision;
} //定义内存的信息结构
[StructLayout(LayoutKind.Sequential)]
public struct MEMORY_INFO
{
public uint dwLength;
public uint dwMemoryLoad;
public uint dwTotalPhys;
public uint dwAvailPhys;
public uint dwTotalPageFile;
public uint dwAvailPageFile;
public uint dwTotalVirtual;
public uint dwAvailVirtual;
} /// <summary>
/// 调用GetSystemInfo函数获取CPU的相关信息
/// </summary>
/// <returns></returns>
public static string GetCPUInfo()
{
try
{
string CPUresult = string.Empty;
CPU_INFO CpuInfo;
CpuInfo = new CPU_INFO();
GetSystemInfo(ref CpuInfo);
CPUresult += "本计算机中有" + CpuInfo.dwNumberOfProcessors.ToString() + "个CPU";
CPUresult += "CPU的类型为" + CpuInfo.dwProcessorType.ToString();
CPUresult += "CPU等级为" + String.Format("{0:N}", CpuInfo.dwProcessorLevel.ToString());
CPUresult += "CPU的OEM ID为" + String.Format("{0:N}", CpuInfo.dwOemId.ToString());
CPUresult += "CPU中的页面大小为" + String.Format("{0:N}", CpuInfo.dwPageSize.ToString()); return CPUresult;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return string.Empty;
}
} /// <summary>
/// 调用GlobalMemoryStatus函数获取内存的相关信息
/// </summary>
/// <returns></returns>
public static string GetMemoryInfo()
{
try
{
string Memoryresult = string.Empty;
MEMORY_INFO MemInfo;
MemInfo = new MEMORY_INFO();
GlobalMemoryStatus(ref MemInfo);
Memoryresult += MemInfo.dwMemoryLoad.ToString() + "%的内存正在使用";
Memoryresult += "物理内存共有" + (MemInfo.dwTotalPhys) / ( * ) + " MB";
Memoryresult += "可使用的物理内存有" + (MemInfo.dwAvailPhys) / ( * ) + " MB";
Memoryresult += "交换文件总大小为" + (MemInfo.dwTotalPageFile) / ( * ) + " MB";
Memoryresult += "尚可交换文件大小为" + (MemInfo.dwAvailPageFile) / ( * ) + " MB";
Memoryresult += "总虚拟内存有" + (MemInfo.dwTotalVirtual) / ( * ) + " MB";
Memoryresult += "未用虚拟内存有" + (MemInfo.dwAvailVirtual) / ( * ) + " MB"; return Memoryresult;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return string.Empty;
}
}
}
/// <summary>
/// 根据PID结束指定进程
/// </summary>
/// <param name="pid"></param>
public static bool EndProcess(int pid)
{
try
{
Process process = Process.GetProcessById(pid);
process.Kill();
return true;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return false;
}
} /// <summary>
/// 监控线程的运行情况,如果退出,则记录退出的错误码和退出时间
/// </summary>
/// <param name="pid"></param>
/// <returns></returns>
public static string MonitorProcess(int pid)
{
string Message = string.Empty;
try
{
Process process = Process.GetProcessById(pid);
if (process.HasExited)
{
Message = string.Format("ExitCode:{0};ExitTime:{1}", process.ExitCode, process.ExitTime.ToString("yyyy年MM月dd HH时mm分ss秒"));
}
return Message;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return string.Empty;
}
}
/// <summary>
/// 调用GetSystemInfo函数获取CPU的相关信息,获取CPU占用率
/// </summary>
/// <returns></returns>
public static string GetCPUInfo()
{
string CPUresult = string.Empty;
try
{
PerformanceCounter pcCpuLoad = new PerformanceCounter("Processor", "% Processor Time", "_Total");
pcCpuLoad.MachineName = ".";
pcCpuLoad.NextValue();
float cpuLoad = pcCpuLoad.NextValue();
string.Format("CPU占用率:{0} %",cpuLoad);
return CPUresult;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return string.Empty;
}
}
C#获取客服端ip和用户名:
. 在asp.Net中专用属性:
获取服务器电脑名:page.server.manchinename
获取用户信息:page.user
获取客户端电脑名:page.request.userhostname
获取客户端电脑ip:page.request.userhostaddress . 在网络编程中的通用方法:
获取当前电脑名:static system.Net.dns.gethostname()
根据电脑名取出全部ip地址:static system.Net.dns.resolve(电脑名).addresslist
也可根据ip地址取出电脑名:static system.Net.dns.resolve(ip地址).hostname . 系统环境类的通用属性:
当前电脑名:static system.environment.machinename
当前电脑所属网域:static system.environment.userdomainname
当前电脑用户:static system.environment.username 举例子来说明: using system.Net;
private void buttonip_click(object sender, system.eventargs e)
{
system.Net.ipaddress[] addresslist = dns.gethostbyname(dns.gethostname()).addresslist;
if (addresslist.length>)
{
textlip.text = addresslist[].tostring();
textsip.text = addresslist[].tostring();
}
else
{
textlip.text = addresslist[].tostring();
textsip.text = "没有可用的连接";
}
}
监控电脑CPU,内存,文件大小,硬盘空间,IP,用户名的更多相关文章
- Linux 性能监控之CPU&内存&I/O监控Shell脚本2
Linux 性能监控之CPU&内存&I/O监控Shell脚本2 by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1 by:授客 QQ:1033553122 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...
- grafana+influxdb+telegraf监控服务器cpu,内存和硬盘
随便抄了一篇,目前我们的项目也在用,这个是linux和windows通吃的一种监控方案,非常有效,详细和优美,需要监控什么具体的业务内容,自己向influxdb中插入就行了. 监控服务器状态是运维必不 ...
- 使用python函数持续监控电脑cpu使用率、内存、c盘使用率等
方法一: # import time 导入time模块 # import psutil 导入psutil模块 # def func(): # while True: ------->持续监控得w ...
- Mac - 苹果电脑mac系统释放硬盘空间方法汇总
硬盘空间是大家最头痛的一个问题,大家在硬盘空间变小的时候怎么腾空间的呢?下面为大家分享7个mac系统释放空间的高级方法,大家赶紧来收了! mac系统释放硬盘空间方法: 方法一:删除Emacs--可以节 ...
- linux查看系统CPU,内存,硬盘使用情况
top查看CPU,内存使用情况 free查看硬盘使用情况
- Linux下查看CPU型号,内存大小,硬盘空间命令
1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重 ...
- Linux下查看CPU型号,内存大小,硬盘空间,进程等的命令(详解)
转自:http://www.jb51.net/article/97157.htm 1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physic ...
- Linux下查看CPU型号,内存大小,硬盘空间的命令
1 查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重 ...
随机推荐
- 渲染路径-surface shader 光照函数与渲染路径
https://docs.unity3d.com/Manual/SL-SurfaceShaderLighting.html Lighting Model declaration Lighting mo ...
- Picture poj1177
Picture Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 12265 Accepted: 6484 Descript ...
- 洛谷P3190 [HNOI2007]神奇游乐园(插头dp)
传送门 大概是算第一道自己做出来的插头dp? (虽然都是照着抄板子的) (虽然有个地方死活没调出来最后只能看题解才发现自己错在哪里的) 我就当你们都会插头dp了…… 因为必须得是一条路径,所以扫描线上 ...
- atom 插件 python语法验证linter-flake8-------填坑
python的语法相对于一般语言的语法比较严格.对于刚刚从前端入门python的我来说,有时候代码写完了,然后报错,好多语法错误.所以这个时候一个好的语法验证插件是很好的.linter-flake8这 ...
- git回退版本,已经commit过的文件丢了
参考:https://blog.csdn.net/qq_33877149/article/details/79705611 可以用 git reset --hard fa8694b 回退到以上相应的位 ...
- Linux关闭/开启防火墙命令
Linux还是比较常用的,于是我研究了一下Linux关闭防火墙命令,在这里拿出来和大家分享一下,希望你能学会Linux关闭防火墙命令 . 1) 永久性生效,重启后不会复原 开启: chkconfig ...
- Spring 顾问
1.名称匹配方法切入点顾问 接口:ISomeService public interface ISomeService { public void doSome(); public void doSe ...
- Java @Validated 遇到的大坑
我在一个Controller内,在两个方法内使用@Validated,这是两个POST方法会进入的方法,这两个方法的实体类的命名(下图红框内容)不能一样,一样的话就会导致第二个在页面显示不出来错误信息 ...
- nodejs模块学习: webpack
nodejs模块学习: webpack nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子来解决现实 ...
- 老技术,UrlRewriter实现全站伪静态
看人家做淘宝客很火,就做了个网站.seo的话当然需要全站伪静态了,问了下空间商不支持mvc,尼玛,好吧,isapi_rewrite支持吗?“额,不支持!” -_-! 额,好吧,搬出n年前的东西了:微软 ...