Skip to content

Jiang39/TrafficMonitor

Repository files navigation

TrafficMonitor - Windows 系统监控软件

一个极简美观的 Windows 系统监控工具,实时显示网络速度、CPU、内存、显卡使用率及温度信息。

✨ 功能特性

核心监控功能

  • 网络监控

    • 实时上传/下载速度显示(彩色标识)
    • 今日流量累计显示
    • 本周/本月流量统计
    • 历史峰值速度记录
    • 自动选择活动网卡,过滤虚拟网卡
  • 硬件监控

    • CPU使用率和温度
    • 内存使用率
    • 显卡(GPU)使用率和温度
    • 集成LibreHardwareMonitor硬件库
  • 系统信息

    • 系统运行时间
    • 硬盘读写速度
    • 磁盘空间信息
    • 本地IP和公网IP地址

UI特性

  • 超紧凑设计:58×420像素,两行显示,不遮挡工作区
  • 系统托盘:图标显示在任务栏右下角,不占用任务栏
  • 悬浮窗口:始终置顶,半透明效果
  • 灵活透明度:Ctrl+滚轮调节或右键菜单选择(50%-100%)
  • 精美布局:彩色数值,整齐对齐,一目了然
  • 位置记忆:窗口位置自动保存

交互功能

  • 拖动窗口:鼠标左键拖动到任意位置
  • 透明度调节:Ctrl+鼠标滚轮微调透明度(30%-100%)
  • 系统托盘:双击托盘图标显示/隐藏窗口
  • 右键菜单:快速访问透明度设置、详细信息、重置统计等
  • 后台运行:关闭窗口不退出程序,继续后台监控

其他功能

  • 开机自启动支持
  • 配置自动保存
  • 统计数据持久化
  • 低资源占用(<1% CPU,~50-80MB 内存)

系统要求

  • Windows 10/11(64位)
  • .NET 8.0 Runtime(自包含版本无需安装)
  • 管理员权限(推荐,用于读取温度信息)

快速开始

开发环境运行

  1. 确保已安装 .NET 8.0 SDK
  2. 克隆仓库:
git clone https://github.com/你的用户名/TrafficMonitor.git
cd TrafficMonitor
  1. 运行程序:
dotnet run --project TrafficMonitor/TrafficMonitor.csproj
  1. 以管理员身份运行(推荐,可读取温度):
# 右键PowerShell → 以管理员身份运行
cd TrafficMonitor路径
dotnet run --project TrafficMonitor/TrafficMonitor.csproj

编译发布

发布自包含单文件版本(推荐)

dotnet publish TrafficMonitor/TrafficMonitor.csproj -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true

生成的可执行文件位于:TrafficMonitor/bin/Release/net8.0-windows/win-x64/publish/TrafficMonitor.exe

特点:

  • 单个exe文件,约80-120MB
  • 包含所有依赖和.NET运行时
  • 可直接在任何Windows 10/11电脑上运行

发布依赖框架版本(体积更小)

dotnet publish TrafficMonitor/TrafficMonitor.csproj -c Release -r win-x64 --self-contained false

特点:

  • 约5-10MB
  • 需要用户系统已安装.NET 8.0 Runtime

使用说明

基本操作

窗口操作:

  • 拖动窗口:鼠标左键按住窗口拖动
  • 调节透明度:按住Ctrl键 + 鼠标滚轮
  • 右键菜单:透明度设置、详细信息、重置统计、退出

系统托盘:

  • 托盘位置:任务栏右下角(可能需要点击^展开)
  • 双击图标:显示/隐藏悬浮窗
  • 右键图标:显示/隐藏窗口、详细信息、设置、退出

退出程序:

  • 右键托盘图标 → 退出
  • 或右键悬浮窗 → 退出
  • 注意:直接关闭窗口只是隐藏,不会退出程序

配置文件

配置和统计数据保存在:

%LocalAppData%\TrafficMonitor\
├── config.json        # 配置文件(窗口位置、透明度等)
└── statistics.json    # 统计数据(流量累计、峰值等)

权限说明

普通权限:

  • 可以监控网络速度
  • 可以监控CPU和内存使用率
  • 温度可能显示为0°C

管理员权限(推荐):

  • 完整硬件监控功能
  • CPU和GPU温度正常显示
  • 所有性能计数器可用

界面说明

显示布局

┌──────────────────────────────────────────────┐
│  CPU:  25 % (50°C)  内存:  58 %  显卡:  23 % (0°C)  │
├──────────────────────────────────────────────┤
│上传: 3.27 KB/s     下载: 16.61 KB/s     今日: 55.0 MB │
└──────────────────────────────────────────────┘

第一行: CPU使用率+温度 / 内存使用率 / 显卡使用率+温度
第二行: 上传速度(粉红色) / 下载速度(绿色) / 今日流量总计(橙黄色)

颜色说明

  • 白色数值:主要监控数据(使用率、速度)
  • 粉红色:上传速度
  • 绿色:下载速度
  • 橙黄色:今日流量累计
  • 浅灰色:辅助信息(温度、单位)

技术架构

技术栈

  • .NET 8.0 - 应用框架
  • WPF - 用户界面
  • MVVM - 架构模式

核心依赖

  • LibreHardwareMonitorLib 0.9.4 - 硬件监控
  • LiveCharts2 - 数据图表(预留)
  • Newtonsoft.Json - JSON序列化
  • Hardcodet.NotifyIcon.Wpf - 系统托盘
  • System.Drawing.Common - 图标生成

项目结构

TrafficMonitor/
├── Models/              # 数据模型
│   ├── MonitorData.cs            # 实时监控数据
│   ├── NetworkStatistics.cs      # 网络统计
│   └── SystemInfo.cs             # 系统信息
├── Services/            # 核心服务
│   ├── NetworkMonitorService.cs  # 网络监控服务
│   ├── HardwareMonitorService.cs # 硬件监控服务
│   ├── SystemInfoService.cs      # 系统信息服务
│   ├── StatisticsService.cs      # 数据统计服务
│   └── ConfigService.cs          # 配置管理服务
├── ViewModels/          # 视图模型
│   └── MainViewModel.cs          # 主窗口视图模型
├── Helpers/             # 辅助工具
│   ├── AutoStartHelper.cs        # 开机自启助手
│   ├── IpAddressHelper.cs        # IP地址工具
│   └── IconHelper.cs             # 图标生成工具
├── Views/               # 视图(待扩展)
├── MainWindow.xaml      # 主窗口UI
├── MainWindow.xaml.cs   # 主窗口逻辑
└── App.xaml/cs          # 应用程序入口

安装使用

立即运行

cd TrafficMonitor
dotnet run --project TrafficMonitor/TrafficMonitor.csproj

以管理员身份运行(推荐)

  1. 右键点击PowerShell → 以管理员身份运行
  2. 执行上面的命令

发布独立可执行文件

dotnet publish TrafficMonitor/TrafficMonitor.csproj -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true

生成的exe位于:TrafficMonitor\bin\Release\net8.0-windows\win-x64\publish\TrafficMonitor.exe

使用技巧

推荐设置

  1. 窗口位置:屏幕右上角或右下角
  2. 透明度:70-80%(既能看清又不遮挡)
  3. 运行方式:以管理员身份启动获取完整功能

快捷操作

  • Ctrl + 滚轮:快速调节透明度
  • 双击托盘图标:显示/隐藏窗口
  • 右键悬浮窗:访问透明度菜单和功能
  • 右键托盘图标:后台管理程序

配置说明

配置文件:%LocalAppData%\TrafficMonitor\config.json

{
  "WindowLeft": 100,           // 窗口X坐标
  "WindowTop": 100,            // 窗口Y坐标
  "WindowOpacity": 0.85,       // 透明度(0.5-1.0)
  "AlwaysOnTop": true,         // 是否置顶
  "AutoStart": false,          // 开机自启动
  "UpdateInterval": 1000,      // 刷新间隔(毫秒)
  "Theme": "Dark",             // 主题
  "FontSize": 12,              // 字体大小
  "ShowNetworkSpeed": true,    // 显示网络速度
  "ShowCpuInfo": true,         // 显示CPU信息
  "ShowMemoryInfo": true,      // 显示内存信息
  "ShowGpuInfo": true,         // 显示显卡信息
  "ShowTemperature": true      // 显示温度信息
}

故障排除

程序无法启动

  • 确认已安装 .NET 8.0 Runtime(自包含版本除外)
  • 尝试以管理员身份运行

显示数据为0

  • 等待3-5秒让监控服务初始化
  • 检查是否以管理员身份运行
  • 确认网卡和硬件驱动正常

温度显示为0

  • 必须以管理员身份运行
  • 某些硬件可能不支持温度读取
  • 更新主板和显卡驱动

托盘图标不显示

  • 检查任务栏右下角,可能在隐藏图标中(点击^展开)
  • 检查Windows系统托盘设置
  • 重启程序

下载数据显示不全

  • 窗口宽度已优化为420px
  • 如果仍然截断,可以修改MainWindow.xaml中的Width值

性能表现

  • CPU占用:< 1%(闲时)
  • 内存占用:约 50-80 MB
  • 刷新间隔:1秒(可配置)
  • 对系统影响:极小,适合常驻后台

开发计划

  • 基础监控功能
  • 超紧凑悬浮窗UI
  • 系统托盘功能
  • 透明度调节
  • 配置管理
  • 数据统计
  • 详细统计窗口(带历史图表)
  • 设置窗口(可视化配置界面)
  • 主题切换(浅色/深色)
  • 多语言支持
  • 性能优化

已知问题

  1. 某些虚拟机或特殊网络环境下可能无法正确检测网卡
  2. 部分显卡可能无法读取温度信息
  3. 首次运行需要几秒钟初始化硬件监控
  4. LiveCharts包有兼容性警告(不影响使用)

贡献指南

欢迎提交Issue和Pull Request!

在提交PR前,请确保:

  • 代码遵循项目的编码规范
  • 通过编译且无错误
  • 添加必要的注释和文档

许可证

MIT License

致谢


作者:TrafficMonitor Contributors
版本:v1.0
更新日期:2025-10-11

截图

主界面

超紧凑两行布局,清晰显示所有监控数据:

  • 第一行:CPU、内存、显卡(含使用率和温度)
  • 第二行:上传速度、下载速度、今日流量

系统托盘

蓝色圆形图标,带上传↑下载↓箭头,右键菜单提供快速操作。


注意:建议以管理员身份运行以获取完整硬件监控功能(包括温度信息)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages