资源简介
获取电脑进程列表,显示各个进程的CPU,内存,上行速度,下载速度。以及通过pid杀死进程的方法。使用winpcap库抓取各个进程的网络速率。
代码片段和文件信息
#include “stdafx.h“
#include “CpuCheck.h“
#include
#include
#include
float CPUusage::get_cpu_usage()
{
FILETIME now;
FILETIME creation_time;
FILETIME exit_time;
FILETIME kernel_time;
FILETIME user_time;
int64_t system_time;
int64_t time;
int64_t system_time_delta;
int64_t time_delta;
DWORD exitcode;
float cpu = -1;
if (!_hProcess)
{
return -1;
}
GetSystemTimeAsFileTime(&now);
//判断进程是否已经退出
GetExitCodeProcess(_hProcess &exitcode);
if (exitcode != STILL_ACTIVE) {
clear();
printf(“exitcode:%d process exit\n“ exitcode);
return -1;
}
//计算占用CPU的百分比
if (!GetProcessTimes(_hProcess &creation_time &exit_time &kernel_time &user_time))
{
DWORD lasterr = GetLastError();
clear();
printf(“lasterr:%d process cpu\n“ lasterr);
return -1;
}
system_time = (file_time_2_utc(&kernel_time) + file_time_2_utc(&user_time))
/ _processor;
time = file_time_2_utc(&now);
//判断是否为首次计算
if ((_last_system_time == 0) || (_last_time == 0))
{
_last_system_time = system_time;
_last_time = time;
return -2;
}
system_time_delta = system_time - _last_system_time;
time_delta = time - _last_time;
if (time_delta == 0) {
return -1;
}
cpu = (float)system_time_delta * 100 / (float)time_delta;
_last_system_time = system_time;
_last_time = time;
return cpu;
}
CPUusage::uint64_t CPUusage::file_time_2_utc(const FILETIME* ftime)
{
LARGE_INTEGER li;
li.LowPart = ftime->dwLowDateTime;
li.HighPart = ftime->dwHighDateTime;
return li.QuadPart;
}
int CPUusage::get_processor_number()
{
SYSTEM_INFO info;
GetSystemInfo(&info);
return info.dwNumberOfProcessors;
}
int CPUusage::get_memory_usage(int pid uint64_t* mem uint64_t* vmem)
{
PROCESS_MEMORY_COUNTERS pmc;
if (GetProcessMemoryInfo(OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION false pid) &pmc sizeof(pmc)))
{
if (mem) *mem = pmc.WorkingSetSize;
if (vmem) *vmem = pmc.PagefileUsage;
return 0;
}
return -1;
}
int CPUusage::get_io_bytes(uint64_t* read_bytes uint64_t* write_bytes)
{
IO_COUNTERS io_counter;
if (GetProcessIoCounters(GetCurrentProcess() &io_counter))
{
if (read_bytes) *read_bytes = io_counter.ReadTransferCount;
if (write_bytes) *write_bytes = io_counter.WriteTransferCount;
return 0;
}
return -1;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-20 18:15 ProcessNetRateDemo\
目录 0 2017-09-20 18:15 ProcessNetRateDemo\Debug\
目录 0 2017-09-20 18:11 ProcessNetRateDemo\ProcessNetRateDemo\
文件 2448 2017-08-12 19:46 ProcessNetRateDemo\ProcessNetRateDemo\CpuCheck.cpp
文件 2234 2017-08-15 11:38 ProcessNetRateDemo\ProcessNetRateDemo\CpuCheck.h
目录 0 2017-09-20 18:14 ProcessNetRateDemo\ProcessNetRateDemo\Debug\
目录 0 2017-09-20 18:15 ProcessNetRateDemo\ProcessNetRateDemo\Debug\ProcessN.97583C40.tlog\
文件 2392 2017-09-20 18:14 ProcessNetRateDemo\ProcessNetRateDemo\Debug\ProcessNetRateDemo.Build.CppClean.log
文件 86 2017-09-20 18:14 ProcessNetRateDemo\ProcessNetRateDemo\Debug\ProcessNetRateDemo.log
文件 12499 2017-09-20 18:11 ProcessNetRateDemo\ProcessNetRateDemo\ProcessNetRateDemo.cpp
文件 5571 2017-08-12 16:00 ProcessNetRateDemo\ProcessNetRateDemo\ProcessNetRateDemo.vcxproj
文件 3529 2017-08-12 16:00 ProcessNetRateDemo\ProcessNetRateDemo\ProcessNetRateDemo.vcxproj.filters
文件 165 2017-08-11 16:44 ProcessNetRateDemo\ProcessNetRateDemo\ProcessNetRateDemo.vcxproj.user
文件 1792 2017-08-11 16:39 ProcessNetRateDemo\ProcessNetRateDemo\ReadMe.txt
目录 0 2017-08-11 16:48 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\
文件 1200 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\Plugin.h
目录 0 2017-08-11 16:48 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\abstract\
文件 799 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\abstract\Model.cpp
文件 963 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\abstract\Model.h
文件 818 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\abstract\View.cpp
文件 935 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\abstract\View.h
目录 0 2017-08-11 16:48 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\detail\
文件 791 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\detail\Detail.cpp
文件 1307 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\detail\Detail.h
文件 6626 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\detail\DetailModel.cpp
文件 2505 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\detail\DetailModel.h
文件 13863 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\detail\DetailView.cpp
文件 1960 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\detail\DetailView.h
目录 0 2017-08-11 16:48 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\month\
文件 775 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\month\Month.cpp
文件 1298 2017-08-11 12:59 ProcessNetRateDemo\ProcessNetRateDemo\plugins_bak\month\Month.h
............此处省略77个文件信息
- 上一篇:挑战编程中文,整本书.pdf
- 下一篇:ssh实现注册
相关资源
- GG代码转XS内存工具.zip
- mat分析工具window64位
- GE公司PMC5565光纤反射内存卡驱动
- 自己设计制作CPU与单片机,完整扫描
- 山东大学 操作系统实验四 调度算法
- MAT 堆内存分析工具
- 《自己设计制作CPU与单片机》
- 内存检测分析工具
- 视频摄像头SSD模型目标检测.zip
- 第八代 I5 I7 CPU改win7x64 核显及触摸板
- 自己动手写CPU(光盘+PDF+整体图)
- CPU自制入门+自己动手写CPU.zip
- Intel集成显卡驱动7.8.9代CPU适用.rar
- 手把手教你RISC-V处理器.7z
- cpu的verilogHDL的简易实现
- 易语言远程进程加速变态
- 基于FPGA的八位RISC CPU的设计与实现
- 华中科技大学组成原理课程设计:5段
- Verilog 语言设计单周期MIPS CPU42条指令
- redline内存分析工具
- 亲测可用Intel第8代CPU核显驱动Win7-64位
- 三级流水线CPU
- torch-1.3.0+cpu-cp37-cp37m-win_amd64.whl
- S7-1200和HMI用户手册.rar
- intel 6代-7代cpu核显win7-64驱动G4560G460
- 自己动手写CPU+配套光盘
- 自己设计制作CPU与单片机高清版
- 斑马/摩托罗拉MC55A0中文包 版本55A0w
- A311D_Datasheet_04_Wesion.pdf
- DPDK学习之基础概念介绍
评论
共有 条评论