开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 187|回复: 2
收起左侧

[其它源码] 摸鱼专用金价实时监控

[复制链接]
结帖率:100% (2/2)
发表于 昨天 16:53 | 显示全部楼层 |阅读模式   广东省广州市
分享源码
界面截图:
是否带模块: -
备注说明: -
源码开源地址:https://gitee.com/anglers/lookGoldPrice
下载地址:https://gitee.com/anglers/lookGoldPrice/releases/tag/2.0




金银价格桌面悬浮窗

实时显示黄金/白银价格的 Windows 桌面悬浮窗程序,纯 Go + Win32 API 实现,零依赖第三方 GUI 库

Platform
Go
License

功能特性

  • 浮动于桌面的小型透明窗口,显示黄金(RTJ/国际)和白银(RTJ/国际)实时价格
  • 支撑鼠标拖拽随意移动,双击窗口退出
  • 右键菜单配置:
    • 开机自启动
    • 文字颜色(11 色可选)
    • 文字大小(10px ~ 28px)
    • 窗口透明度(30% ~ 100%)
    • 显示买入价/卖出价切换
    • 背景颜色(8 色可选)
    • 关于信息
  • 配置自动持久化至 %LOCALAPPDATA%\GoldPrice\config.json
  • 数据每 3 秒自动刷新(API 异常不影响窗口工作)
  • 窗口位置记忆,首次自动居中,后续记录上次位置
  • 支持 DPI 缩放(Per-Monitor v2)
  • 兼容 Windows 7 / 10 / 11

截图(窗口示例)

image.png

  • 深色背景 + 圆角
  • 金色"金"标签 / 银色"银"标签
  • 上方:融通金价格 / 国际金价
  • 下方:融通银价格 / 国际银价
  • 中间分隔线

技术栈

层面 技术
语言 Go 1.25
窗口系统 Win32 API(user32.dll
图形绘制 GDI(gdi32.dll
字体渲染 CreateFontW + ClearType
透明度 WS_EX_LAYERED + SetLayeredWindowAttributes
拖拽 WM_NCHITTEST 劫持为 HTCAPTION
配置存储 JSON 文件写入 %LOCALAPPDATA%
开机自启 注册表 HKCU\Run
HTTP 请求 net/http + 连接池复用
线程安全 sync.RWMutex + Channel
编译链接 -H=windowsgui(无黑窗口控制台)

关键设计

完全不依赖 GUI 框架。 直接通过 syscall.NewLazyDLL 调用 Windows 原生 DLL:

user32.dll   →  RegisterClassExW, CreateWindowExW, GetMessage, DispatchMessage, ...
gdi32.dll    →  CreateFontW, RoundRect, DrawTextW, SetTextColor, ...
kernel32.dll →  GetModuleHandleW
advapi32.dll →  RegOpenKeyExW, RegSetValueExW(注册表开机自启)

防卡死机制:

  • runtime.LockOSThread() 锁定消息循环到同一 OS 线程
  • 网络请求在独立 goroutine 执行,通过 channel 与 UI 线程通信
  • cfg 配置读写加 sync.RWMutex,消除数据竞争
  • 所有 GDI 操作(brushes/pens/fonts)用后立即释放,无泄漏
  • WM_CLOSE / SC_CLOSE 被拦截,窗口不会意外消失

构建 & 运行

编译

go build -ldflags "-H=windowsgui -s -w" -o gold.exe .
flag 作用
-H=windowsgui 编译为 Windows GUI 子系统,启动不显示控制台
-s 去除符号表
-w 去除 DWARF 调试信息

运行

双击 gold.exe 或在终端启动:

.\gold.exe

窗口将在屏幕中央出现,右键打开配置菜单。

配置文件

位置:%LOCALAPPDATA%\GoldPrice\config.json

示例内容:

{
  "fontSize": 16,
  "alpha": 85,
  "colorName": "white",
  "bgName": "dark",
  "priceMode": "sell",
  "autoStart": false,
  "windowX": 960,
  "windowY": 540
}
字段 含义 默认值
fontSize 字号(px) 16
alpha 透明度(百分比) 85
colorName 文字颜色预设名 white
bgName 背景颜色预设名 dark
priceMode 显示买/卖价(buy/sell sell
autoStart 开机自启 false
windowX 窗口 X 坐标(-1=居中) -1
windowY 窗口 Y 坐标(-1=居中) -1

数据接口

GET https://vapi.danran0.cc/boot/api/price

返回 JSON,包含融通金/国际 黄金/白银/铂金等品种的买入价与卖出价,本项目使用:

  • hj_rtj(黄金·融通金) → 上方左边
  • hj_gj(黄金·国际)→ 上方右边
  • by_rtj(白银·融通金)→ 下方左边
  • by_gj(白银·国际)→ 下方右边

菜单快捷键(右键)

操作 说明
左键拖拽 移动窗口
双击窗口 退出程序(自动保存位置)
右键 → 关闭 退出程序
右键 → 关于 显示联系信息(微信: KFC_good)

项目结构

gold/
├── main.go            # 全部源码(单文件)
├── go.mod             # Go 模块定义
├── go.sum             # 依赖校验
├── app.manifest       # Windows 应用程序清单(DPI 感知 + 兼容性声明)
├── jintiao.ico        # 应用图标
├── 1.txt              # 构建命令备忘
├── config.json        # 本地配置文件(运行后生成)
├── gold.exe           # 编译产物
└── README.md          # 本文件

系统兼容性

通过 app.manifest 声明支持:

  • Windows 7
  • Windows 8 / 8.1
  • Windows 10
  • Windows 11

所有调用的 Win32 API 自 Windows 2000 起就存在,兼容性良好。字体回退逻辑优先用微软雅黑,Win7 精简版无此字体会自动回退至宋体。

License

MIT


发表于 昨天 21:32 高大上手机用户 | 显示全部楼层   浙江省杭州市
非常支持
回复 支持 反对

使用道具 举报

发表于 昨天 18:14 | 显示全部楼层   河北省石家庄市
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表