5.6 KiB
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. 快速开始
- 双击
nameit.ahk,屏幕左下角立刻出现电脑名。 - 托盘区出现 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. 卸载
- 右键托盘图标 → 取消勾选 开机自启(或运行
nameit.ahk --uninstall)→ 退出。 - 删除
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 秒按工作区重新定位,应对分辨率/任务栏/显示器变化。
许可:随意使用与修改。
