C# 工业级全局键鼠行为监测与日志记录工具

前言

智能制造与自动化产线中,人依旧是关键的操作与决策节点。无论是设备调试、异常处理,还是日常巡检,操作员的每一步键盘输入和鼠标点击都可能关联到生产安全、质量控制或流程合规。如何有效记录并回溯这些关键人机交互行为,成为工业软件系统中不可忽视的一环。

今天推荐一款专为工业环境设计的本地化操作行为记录工具。它能够在工控终端后台静默运行,实时捕获所有键鼠操作,并自动关联当前活动窗口的程序名称、窗口标题及进程路径,生成结构化日志。

项目介绍

一款基于 C# 开发的 Windows 桌面级操作行为记录工具,专为工业环境中的操作审计与行为分析设计。部署于工控机或操作终端后,它能无感捕获操作员的所有键鼠行为,包括按键内容、点击位置、当前运行程序、窗口标题及进程路径,并将数据安全存储于本地数据库。系统支持后台静默运行,通过 Alt+A 快捷键快速切换显示状态,适用于对界面干扰敏感的工业现场。

项目功能

1、 实时记录操作员在 HMI、SCADA、MES 或自研工业软件中的所有键鼠操作;

2、 自动关联操作发生时的活动窗口信息,精准识别操作所属系统(如”WinCC””FactoryTalk”等);

3、 支持日志表格展示,可右键直接定位到对应工业软件的安装路径,便于快速核查;

4、 提供按日统计功能,汇总每日操作频次,辅助评估操作强度或培训效果;

5、 通过折线图动态展示近几秒内操作活跃度,可用于异常行为初步预警(如长时间无操作或高频误触);

6、 生成高频操作饼图,协助工程师识别常用功能模块或潜在操作瓶颈;

7、 热力图功能(开发中)未来可用于分析操作员在特定界面上的点击分布,优化 HMI 布局。

项目特点

工业场景中突出三大优势:

一是完全本地化运行,不依赖网络,不上传任何数据,符合工业信息安全规范;

二是低资源占用,即使在老旧工控机上也能稳定运行,不影响主业务系统;

三是高可追溯性,所有操作均有时间戳与上下文信息,满足 ISO 质量管理体系或安全生产审计要求。

项目技术

1、基于 .NET Framework,采用 WinForm 与 MetroFramework UI 开发;

2、通过 Windows 全局钩子(WH_KEYBOARD_LL / WH_MOUSE_LL)捕获键鼠事件;

3、调用 GetForegroundWindow 和 GetWindowThreadProcessId 获取当前操作上下文;

4、使用 Entity Framework 配合 SQLite/SQL Server 实现本地数据持久化;

5、集成 LiveCharts 提供轻量级操作行为可视化图表。

项目代码

日志记录页

private async void M_hook_MouseDown(object sender, MouseEventArgs e)
{
//获取windos窗口信息
Dictionarystring, object> winDet = GetWindowDetail;
string info = winDet["info"].ToString;
string tit = winDet["tit"].ToString;
Icon ico = (Icon)winDet["ico"];
StringBuilder className = (StringBuilder)winDet["className"];
//添加数据
KeyMouseModel km = new KeyMouseModel;
KeyMouse KeyM = new KeyMouse;
try
{
km.CategoryIcon = (Bitmap)imageList.Images["mousec.png"];
}
catch (Exception ex)
{
km.CategoryIcon = null;
}
KeyM.DeviceName = km.DeviceName = "鼠标";
KeyM.KeyData = km.KeyData = e.Button.ToString;
KeyM.LocationX = km.LocationX = e.X;
KeyM.LocationY = km.LocationY = e.Y;
KeyM.Title = km.Title = tit;
KeyM.ClassName = km.ClassName = className.ToString;
KeyM.ProcessPath = km.ProcessPath = info;
km.ExecuteDate = DateTime.Now.ToString;
KeyM.ExecuteDate = DateTime.Now;
try
{
km.ProgramIcon = ico == null ? (Bitmap)imageList.Images["win.ico"] : ico.ToBitmap;
}
catch (Exception ex)
{
km.ProgramIcon = null;
}
CSGlobal.GetInstance.KeyMs.Add(km);
using (var context = new WareHouse_localEntities)
{
context.KeyMice.Add(KeyM);
//context.SaveChanges;
await context.SaveChangesAsync;
}
}

项目效果

按键记录

C# 工业级全局键鼠行为监测与日志记录工具

图标展示

C# 工业级全局键鼠行为监测与日志记录工具

按键统计

C# 工业级全局键鼠行为监测与日志记录工具

项目源码

代码结构清晰,模块解耦良好,便于工业集成。支持二次开发,例如增加 OPC UA 数据联动、导出审计报告、设置敏感操作告警等。

Gitee:https://gitee.com/Rna_zoro/KeyRecord

总结

工业 4.0 与数字化转型浪潮下,人的操作行为正成为智能制造数据闭环的重大一环。KeyRecord 虽小,却为工业现场提供一种低成本、高实效的操作行为记录方案。它不是监控员工的”电子眼”,而是保障流程合规、提升人机协同效率的”数字日志仪”。随着与 MES、PLM 等系统的深度融合,这类轻量级行为记录工具将在工业领域发挥更大价值。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
实体店吸金术的头像 - 鹿快
评论 共2条

请登录后发表评论