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);
        }
Beispiel #2
0
        /// <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());
        }
Beispiel #3
0
        /// <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);
                    }
                });
            }
        }
Beispiel #5
0
 private void Form1_Load(object sender, EventArgs e)
 {
     var ram = ComputerInfoTool.RAMModel();
 }