private void GetHardInfo() { Print("UserName: " + ComputerInfoTool.UserName()); Print("登录用户名: " + ComputerInfoTool.UserName2()); Print("UserDomainName: " + ComputerInfoTool.UserDomainName()); Print("TickCount: " + ComputerInfoTool.TickCount()); Print("ProcessorCount: " + ComputerInfoTool.ProcessorCount()); Print("OSVersion: " + ComputerInfoTool.OSVersion()); Print("Is64BitOperatingSystem: " + ComputerInfoTool.Is64BitOperatingSystem()); Tuple <string, string> cpuinfo = ComputerInfoTool.CpuInfo(); Print("CPU 序列号 " + cpuinfo.Item1 + " 型号 " + cpuinfo.Item2); Print("显卡信息: " + string.Join(",", ComputerInfoTool.GraphicsCardInfo())); Print("声卡信息: " + string.Join(",", ComputerInfoTool.SoundCardModel())); Print("内存: " + ComputerInfoTool.AvailablePhysicalMemory() + " / " + ComputerInfoTool.TotalPhysicalMemory()); List <Tuple <string, string> > harddiskinfo = ComputerInfoTool.HardDiskInfo(); harddiskinfo.ForEach(x => { Print("硬盘 序列号 " + x.Item1 + " 型号 " + x.Item2); }); var osinfo = ComputerInfoTool.OsInfo(); Print("操作系统: " + osinfo.Item1 + " " + osinfo.Item2 + " " + osinfo.Item3); Print("系统类型: " + ComputerInfoTool.SystemType()); Print("计算机名: " + ComputerInfoTool.MachineName()); Print("系统所有用户名: " + string.Join(",", ComputerInfoTool.UserNames())); var boardinfo = ComputerInfoTool.BoardInfo(); Print("主板 制造商 " + boardinfo.Item1 + " 型号 " + boardinfo.Item2 + " 序列号 " + boardinfo.Item3); }
/// <summary> /// 写出资源配置信息 /// </summary> private void WriteConfig() { //记录固定资源信息 string path = DirTool.Combine(LogPath, "resource"); string file = DirTool.Combine(path, "computer.ini"); //创建目录 DirTool.Create(path); //写出信息 IniTool.WriteValue(file, "system", "ram", ComputerInfoTool.TotalPhysicalMemory().ToString()); IniTool.WriteValue(file, "system", "drive", ComputerInfoTool.GetSystemDriveTotalSize().ToString()); }
/// <summary> /// 收集数据 /// </summary> /// <returns></returns> private bool CollectStatus(ref StatusLogModel status, int count, int runtime, ref long afk, TimeSpan pin) { try { if (status == null) { status = new StatusLogModel() { Time = DateTime.Now } } ; //固定值数据 status.Long = runtime;//运行时长 //累计值数据 long nowAfk = WindowsAPI.GetLastInputTime(); long afktemp = nowAfk - afk; if (afktemp > 0) { status.AFK = status.AFK + afktemp; } //Console.WriteLine($"nowAfk: {nowAfk}, afk: {afk}, afktemp: {afktemp}, statusAFK: {status.AFK}"); afk = nowAfk; //计算平均值数据 int cpu = 0; try { cpu = (int)ComputerProcessor.NextValue(); } catch { }//CPU占用 long ram = (long)ComputerInfoTool.AvailablePhysicalMemory();//系统可用内存 int appcpu = (int)AppInfoTool.CalcCpuRate(AppProcess, pin, Interval);//程序CPU占用 long appram = AppInfoTool.RAM(); //程序内存占用 long sysdisk = ComputerInfoTool.GetSystemDriveAvailableSize(); //系统盘可用空间 status.CpuPer = ((count - 1) * status.CpuPer + cpu) / count; //CPU占用 status.RamFree = ((count - 1) * status.RamFree + ram) / count; //系统可用内存 status.AppCpuPer = ((count - 1) * status.AppCpuPer + appcpu) / count; //程序CPU占用 status.AppRamUsed = ((count - 1) * status.AppRamUsed + appram) / count; //程序内存占用 status.SysDriveFree = ((count - 1) * status.SysDriveFree + sysdisk) / count; //系统盘可用空间 return(true); } catch { return(false); } }
/// <summary> /// 启动监测APP自身资源占用情况 /// </summary> private void TaskOfStatus() { if (!RunStatusTask) { Task.Factory.StartNew(() => { RunStatusTask = true; TimeSpan beginTime = TimeSpan.Zero; while (!IsDisposed) { try { bool cpuflag = ComputerStatusTool.TryGetNextValue(ComputerProcessor, out float cpu); string ram = ByteConvertTool.Fmt(ComputerInfoTool.AvailablePhysicalMemory() * 1024); int appcpu = (int)AppInfoTool.CalcCpuRate(Process, ref beginTime, STATUS_INTERVAL); string appram = ByteConvertTool.Fmt(AppInfoTool.RAM() * 1024); R.SystemStatus.AppID = R.AppID; R.SystemStatus.Name = R.Tx.LocalName; R.SystemStatus.IP = R.Tx.LocalIP; R.SystemStatus.Cpu = (int)cpu; R.SystemStatus.Ram = (long)ComputerInfoTool.TotalPhysicalMemory() / 1024; R.SystemStatus.RamAvail = (long)ComputerInfoTool.AvailablePhysicalMemory() / 1024; R.SystemStatus.AppCpu = appcpu; R.SystemStatus.AppRam = AppInfoTool.RAM() / 1024; R.SystemStatus.CreateTime = DateTime.Now; R.SystemStatus.BigBirdVersion = R.Version; TxSendQueue.Add(20002000, Json.Object2String(R.SystemStatus)); Invoke(new Action(() => { LBStatus.Text = $"CPU: {(int)cpu}% , RAM: {ram} [ cpu: {appcpu}% , ram: {appram} ]"; })); } catch { } Thread.Sleep(STATUS_INTERVAL); } }); } }
private void Form1_Load(object sender, EventArgs e) { var ram = ComputerInfoTool.RAMModel(); }