借助网络配置,控制Modbus工具的日志显示,避免卡死界面
|
# 需求
在主屏幕桌面右上角显示一些系统信息(USB 设备信息、勾选的网卡信息等)。
# 要求
- 使用 winform。
- 系统信息只是文字,鼠标不可选中(窗体点击穿透,不阻挡桌面操作)。
- 文字左对齐,窗体宽高根据文字内容自动调整。
- 背景透明,文字直接显示在桌面上。
- 显示在底层(Z 序最底部),被其他窗口盖住。
- 状态栏有小图标(logo.ico):
- 左键双击托盘图标刷新信息。
- 小图标右键有菜单:
- 可以退出应用(干净退出,释放托盘图标与定时器,避免文件占用)。
- 定时刷新的定时子菜单:1/5/10 秒,默认 10 秒。
- 屏幕选择子菜单:列出所有屏幕,单选切换显示位置。
- 网卡选择子菜单:列出所有网卡,勾选与否,勾选的网卡信息显示在桌面上。
# 显示内容
- 信息内容在 `MainForm.BuildInfoText()` 中填充,返回多行文本,每行一条。
- 顺序(自上而下):
1. 系统版本。
2. 机器名(计算机名)。
3. 勾选的网卡信息(计算机名下方、HUB 上方)。
4. HUB / USB 设备信息。
- 单张勾选网卡显示格式:
```
${网卡名称}
${IPv4}/mask
${gwip}
```
说明:
- `mask` 使用 CIDR 前缀长度,例如 `192.168.1.100/24`。
- `${gwip}` 为网关地址,仅在有值时显示。
- 仅当前处于活动状态且拥有 IPv4 地址的网卡才会被列入网卡选择菜单。
- 信息显示位于主屏右上角,右侧与顶部各留一个字的空隙。
- 定时刷新时会重新调整窗体大小、重新贴靠右上角并压到底层。
# 配置
- 参考 `ySpeakerTest` 的 `SpeakerConfig` 写配置类 `DesktopInfoConfig`,保存为 `Config/DesktopInfo.config`。
- 配置项如下:
| 配置项 | 默认值 | 说明 |
|--------|--------|------|
| ScreenIndex | 0 | 显示所在屏幕编号(0=主屏,1=第二屏,以此类推) |
| RefreshInterval | 10 | 定时刷新间隔(秒)。1/5/10 |
| SelectedNetCards | 空 | 勾选显示在桌面上的网卡 Id 列表(网卡 GUID) |
- 启动时读取配置决定显示屏幕、刷新间隔与勾选网卡。
- 托盘菜单切换屏幕 / 刷新间隔 / 勾选网卡时,会把最新值回写保存到配置文件。
|