Files
nameit/README.md
T

5.6 KiB
Raw Blame History

nameit —— 屏幕角落设备名水印

在屏幕任意角落常驻显示一段文字(默认是本机电脑名),像水印一样浮在所有窗口最上层, 鼠标点击完全穿透,不影响任何操作。白色字身 + 黑色描边,深浅背景都清晰。

效果预览

上图:同样一段文字,上半部在白色背景上(黑色描边清晰),下半部在深色背景上(白色字身清晰)。


1. 依赖

只需要 AutoHotkey v2,无需 Python / .NET / 任何第三方库。

  • 安装 AHK v2 后,AutoHotkey64.exe 通常在 C:\Program Files\AutoHotkey\v2\。
  • 脚本用 A_AhkPath 记录自身解释器路径,所以 AHK 装在别处也能正常开机自启。

2. 目录结构

D:\workbench\nameit\
├─ nameit.ahk     主程序(双击即可运行)
├─ nameit.ini     配置文件(文字、字体、颜色、位置)
├─ README.md      本说明
└─ docs\
   └─ preview.png 效果图

3. 快速开始

  1. 双击 nameit.ahk,屏幕左下角立刻出现电脑名。
  2. 托盘区出现 AutoHotkey 图标,右键可进行全部操作。

默认显示的是本机电脑名(A_ComputerName)。想改成任意文字,见下面的配置说明。

4. 开机自启

任选一种:

方式 操作
托盘菜单(推荐) 右键托盘图标 → 勾选 开机自启;再点一次即取消
命令行 nameit.ahk --install 设置;nameit.ahk --uninstall 取消
手动 把 nameit.ahk 的快捷方式放进 shell:startup 文件夹

实际做法是在 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\nameit.lnk 生成一个指向 AutoHotkey64.exe "…\nameit.ahk" 的快捷方式,不写注册表、不改系统设置。

5. 配置说明(nameit.ini)

改完保存后,右键托盘图标 → 重新载入配置(或重启脚本)即可生效。

[general]

键 默认 说明
Text 空 显示的文字。留空 = 自动使用电脑名
Case as-is 大小写:as-is 原样 / upper 全大写 / lower 全小写

[font]

键 默认 说明
Face 空 字体名。留空 = 自动(纯英文 Segoe UI,含中文 Microsoft YaHei UI)
SizePx 50 字高,单位像素(精确到像素,不是磅值)
Weight 700 字重:700 粗体,400 常规

[color]

键 默认 说明
Text FFFFFF 字身颜色,RGB 十六进制
Stroke 000000 描边颜色
StrokeWidth 4 描边粗细(像素),0 = 不要描边

[layout]

键 默认 说明
Corner bottom-left 位置:top/middle/bottom + left/center/right
Monitor 1 显示器编号,1 = 主显示器
MarginX 24 距屏幕左右边缘的距离(像素)
MarginY 18 距屏幕上/下边缘的距离(像素,自动避开任务栏)

常用示例

; 显示固定文字,全大写,字号 72
[general]
Text=HORSE
Case=upper
[font]
SizePx=72

; 放到右上角、第二块显示器
[layout]
Corner=top-right
Monitor=2

; 黑字白边(浅色桌面上就是实心黑字)
[color]
Text=000000
Stroke=FFFFFF

6. 托盘菜单

菜单项 作用
显示 / 隐藏 临时隐藏水印,再点恢复
重新载入配置 重新读取 nameit.ini 并重绘
打开配置文件 用默认编辑器打开 nameit.ini
开机自启 勾选/取消开机启动
退出 结束程序

7. 卸载

  1. 右键托盘图标 → 取消勾选 开机自启(或运行 nameit.ahk --uninstall)→ 退出。
  2. 删除 D:\workbench\nameit 整个目录即可,不残留注册表项。

8. 常见问题

Q:双击没反应 / 弹出「不是有效的 Win32 程序」? 装的是 AHK v1。本脚本要求 v2,请到 https://www.autohotkey.com/v2/ 安装 v2。

Q:文字被任务栏挡住? 程序定位用的是「工作区」(自动扣掉任务栏),正常不会重叠。若任务栏自动隐藏或换了位置, 拖动后 2 秒内会自动重新对齐。

Q:多显示器只在一块屏上显示? 默认主显示器(Monitor=1)。改 Monitor=2、3… 即可换屏;编号与 Windows 显示设置里的顺序一致。

Q:全屏游戏 / 视频上看不到? 独占全屏(DirectX exclusive fullscreen)的程序会盖住所有普通窗口,包括置顶窗口。 改成「无边框窗口化」即可看到。

Q:字被某些深色/花哨壁纸淹没? 把 StrokeWidth 调大到 5~6,或反过来用黑字白边(Text=000000 / Stroke=FFFFFF)。

Q:会影响我点击图标吗? 不会。窗口带 WS_EX_TRANSPARENT,鼠标事件直接穿透到下方窗口;也不抢焦点、不出现在 Alt+Tab。

9. 实现原理(简述)

  • 一个无边框 WS_EX_LAYERED 窗口,背景设为色键色,用 SetLayeredWindowAttributes(LWA_COLORKEY) 把背景抠成全透明,只剩文字。
  • 文字用 GDI CreateFontW(-像素高) 创建,保证「字高 = 指定像素」;再 WM_SETFONT 应用到静态文本控件。
  • 描边 = 以字形为中心、按半径采样一圈整数偏移,叠加多个同色文字层,最上层放白色字身。
  • 置顶用 WS_EX_TOPMOST + WinSetAlwaysOnTop;穿透用 WS_EX_TRANSPARENT;不抢焦点用 WS_EX_NOACTIVATE。
  • 每 2 秒按工作区重新定位,应对分辨率/任务栏/显示器变化。

许可:随意使用与修改。