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

|
||
|
||
> 上图:同样一段文字,上半部在白色背景上(黑色描边清晰),下半部在深色背景上(白色字身清晰)。
|
||
|
||
---
|
||
|
||
## 1. 依赖
|
||
|
||
只需要 **[AutoHotkey v2](https://www.autohotkey.com/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` | 距屏幕上/下边缘的距离(像素,自动避开任务栏) |
|
||
|
||
### 常用示例
|
||
|
||
```ini
|
||
; 显示固定文字,全大写,字号 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 秒按工作区重新定位,应对分辨率/任务栏/显示器变化。
|
||
|
||
---
|
||
|
||
许可:随意使用与修改。
|