nameit: 通用化设备名水印(AHK v2),支持配置/开机自启/README
This commit is contained in:
@@ -0,0 +1,155 @@
|
|||||||
|
# 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 秒按工作区重新定位,应对分辨率/任务栏/显示器变化。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
许可:随意使用与修改。
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
+307
@@ -0,0 +1,307 @@
|
|||||||
|
; ============================================================
|
||||||
|
; nameit —— 屏幕角落设备名水印(AutoHotkey v2)
|
||||||
|
;
|
||||||
|
; 功能:在屏幕指定角落显示设备名/任意文字
|
||||||
|
; · 字高按像素精确控制
|
||||||
|
; · 白色字身 + 黑色描边,深浅背景都清晰
|
||||||
|
; · 始终置顶,鼠标完全穿透
|
||||||
|
; 依赖:仅需 AutoHotkey v2(无需其他组件)
|
||||||
|
; 配置:同目录 nameit.ini,托盘菜单可打开/重载
|
||||||
|
; 用法:见 README.md 或运行 nameit.ahk --help
|
||||||
|
; ============================================================
|
||||||
|
#Requires AutoHotkey v2.0
|
||||||
|
#SingleInstance Force
|
||||||
|
Persistent
|
||||||
|
|
||||||
|
APP_NAME := "nameit"
|
||||||
|
INI := A_ScriptDir "\nameit.ini"
|
||||||
|
LNK := A_Startup "\" APP_NAME ".lnk"
|
||||||
|
|
||||||
|
; ---------------------- 命令行 ----------------------
|
||||||
|
if (A_Args.Length > 0) {
|
||||||
|
cmd := A_Args[1]
|
||||||
|
if (cmd = "--install" || cmd = "-i") {
|
||||||
|
ok := EnsureStartup()
|
||||||
|
MsgBox(ok ? "已设置开机自启:`n" LNK : "设置开机自启失败,请检查权限。", APP_NAME, ok ? "Iconi" : "Icon!")
|
||||||
|
} else if (cmd = "--uninstall" || cmd = "-u") {
|
||||||
|
RemoveStartup()
|
||||||
|
MsgBox("已取消开机自启。", APP_NAME, "Iconi")
|
||||||
|
ExitApp
|
||||||
|
} else if (cmd = "--help" || cmd = "-h" || cmd = "/?") {
|
||||||
|
MsgBox(UsageText(), APP_NAME, "Iconi")
|
||||||
|
ExitApp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
; ---------------------- 读取配置 ----------------------
|
||||||
|
if !FileExist(INI)
|
||||||
|
try FileAppend(IniTemplate(), INI, "UTF-8")
|
||||||
|
|
||||||
|
CFG_TEXT := Cfg("general", "Text", A_ComputerName)
|
||||||
|
CASE_MODE := Cfg("general", "Case", "as-is")
|
||||||
|
FONT_FACE := Cfg("font", "Face", "")
|
||||||
|
FONT_PX := Integer(Cfg("font", "SizePx", "50"))
|
||||||
|
FONT_WT := Integer(Cfg("font", "Weight", "700"))
|
||||||
|
COL_TEXT := Cfg("color", "Text", "FFFFFF")
|
||||||
|
COL_STROKE := Cfg("color", "Stroke", "000000")
|
||||||
|
STROKE_W := Integer(Cfg("color", "StrokeWidth", "4"))
|
||||||
|
CORNER := Cfg("layout", "Corner", "bottom-left")
|
||||||
|
MONITOR := Integer(Cfg("layout", "Monitor", "1"))
|
||||||
|
MARGIN_X := Integer(Cfg("layout", "MarginX", "24"))
|
||||||
|
MARGIN_Y := Integer(Cfg("layout", "MarginY", "18"))
|
||||||
|
|
||||||
|
if (CASE_MODE = "upper")
|
||||||
|
CFG_TEXT := StrUpper(CFG_TEXT)
|
||||||
|
else if (CASE_MODE = "lower")
|
||||||
|
CFG_TEXT := StrLower(CFG_TEXT)
|
||||||
|
|
||||||
|
if (FONT_FACE = "")
|
||||||
|
FONT_FACE := RegExMatch(CFG_TEXT, "[\x{4E00}-\x{9FFF}]") ? "Microsoft YaHei UI" : "Segoe UI"
|
||||||
|
|
||||||
|
if (FONT_PX < 1)
|
||||||
|
FONT_PX := 50
|
||||||
|
if (STROKE_W < 0)
|
||||||
|
STROKE_W := 0
|
||||||
|
|
||||||
|
; 透明色键:抠掉这个颜色即"看不见背景";确保不与文字/描边同色
|
||||||
|
KEY_COLOR := "0A0A0A"
|
||||||
|
if (COL_TEXT = KEY_COLOR || COL_STROKE = KEY_COLOR)
|
||||||
|
KEY_COLOR := "010203"
|
||||||
|
|
||||||
|
; ---------------------- 创建窗口 ----------------------
|
||||||
|
hFont := CreateFontPx(FONT_PX, FONT_WT, FONT_FACE)
|
||||||
|
sz := MeasureText(hFont, CFG_TEXT)
|
||||||
|
|
||||||
|
; WS_EX_TRANSPARENT(0x20) 鼠标穿透 | WS_EX_LAYERED(0x80000) 色键透明 | WS_EX_NOACTIVATE(0x08000000) 不抢焦点
|
||||||
|
g := Gui("+AlwaysOnTop -Caption +ToolWindow +E0x20 +E0x80000 +E0x08000000", APP_NAME "Overlay")
|
||||||
|
g.BackColor := KEY_COLOR
|
||||||
|
g.MarginX := 0
|
||||||
|
g.MarginY := 0
|
||||||
|
|
||||||
|
padL := STROKE_W + 2
|
||||||
|
ctlW := sz.w + 4
|
||||||
|
ctlH := sz.h + 4
|
||||||
|
|
||||||
|
; 1) 黑色描边层:绕字形外圈放多个同色文字控件(BackgroundTrans 使它们互不遮挡)
|
||||||
|
if (STROKE_W > 0) {
|
||||||
|
g.SetFont("c" COL_STROKE, FONT_FACE)
|
||||||
|
for off in RingOffsets(STROKE_W) {
|
||||||
|
lbl := g.Add("Text", "x" padL + off.x " y" padL + off.y " w" ctlW " h" ctlH " BackgroundTrans", CFG_TEXT)
|
||||||
|
DllCall("SendMessageW", "Ptr", lbl.Hwnd, "UInt", 0x0030, "Ptr", hFont, "Ptr", 1) ; WM_SETFONT
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
; 2) 字身层(最后添加 = 位于最上层)
|
||||||
|
g.SetFont("c" COL_TEXT, FONT_FACE)
|
||||||
|
main := g.Add("Text", "x" padL " y" padL " w" ctlW " h" ctlH " BackgroundTrans", CFG_TEXT)
|
||||||
|
DllCall("SendMessageW", "Ptr", main.Hwnd, "UInt", 0x0030, "Ptr", hFont, "Ptr", 1) ; WM_SETFONT
|
||||||
|
|
||||||
|
W := ctlW + 2 * padL
|
||||||
|
H := ctlH + 2 * padL
|
||||||
|
|
||||||
|
g.Show("NoActivate w" W " h" H)
|
||||||
|
WinSetAlwaysOnTop(1, "ahk_id " g.Hwnd)
|
||||||
|
DllCall("SetLayeredWindowAttributes", "Ptr", g.Hwnd, "UInt", BGR(KEY_COLOR), "UInt", 255, "UInt", 1)
|
||||||
|
PlaceOverlay()
|
||||||
|
SetTimer(PlaceOverlay, 2000) ; 分辨率/任务栏/显示器变化时自动重新定位
|
||||||
|
|
||||||
|
; ---------------------- 托盘菜单 ----------------------
|
||||||
|
A_IconTip := "nameit:" CFG_TEXT
|
||||||
|
BuildMenu()
|
||||||
|
|
||||||
|
; ======================================================
|
||||||
|
; 函数
|
||||||
|
; ======================================================
|
||||||
|
Cfg(section, key, def) {
|
||||||
|
global INI
|
||||||
|
v := ""
|
||||||
|
try v := IniRead(INI, section, key, "")
|
||||||
|
return (v = "" ? def : v)
|
||||||
|
}
|
||||||
|
|
||||||
|
CreateFontPx(pixelHeight, weight, face) {
|
||||||
|
return DllCall("CreateFontW"
|
||||||
|
, "Int", -pixelHeight ; 负值 = 字身高度(像素)
|
||||||
|
, "Int", 0, "Int", 0, "Int", 0
|
||||||
|
, "Int", weight
|
||||||
|
, "UInt", 0, "UInt", 0, "UInt", 0 ; 斜体 / 下划线 / 删除线
|
||||||
|
, "UInt", 1 ; DEFAULT_CHARSET
|
||||||
|
, "UInt", 0, "UInt", 0
|
||||||
|
, "UInt", 4 ; ANTIALIASED_QUALITY
|
||||||
|
, "UInt", 0
|
||||||
|
, "WStr", face, "Ptr")
|
||||||
|
}
|
||||||
|
|
||||||
|
MeasureText(hFont, text) {
|
||||||
|
hdc := DllCall("GetDC", "Ptr", 0, "Ptr")
|
||||||
|
old := DllCall("SelectObject", "Ptr", hdc, "Ptr", hFont, "Ptr")
|
||||||
|
size := Buffer(8, 0)
|
||||||
|
DllCall("GetTextExtentPoint32W", "Ptr", hdc, "WStr", text, "Int", StrLen(text), "Ptr", size)
|
||||||
|
DllCall("SelectObject", "Ptr", hdc, "Ptr", old)
|
||||||
|
DllCall("ReleaseDC", "Ptr", 0, "Ptr", hdc)
|
||||||
|
return { w: NumGet(size, 0, "Int"), h: NumGet(size, 4, "Int") }
|
||||||
|
}
|
||||||
|
|
||||||
|
; 半径 radius 的一圈整数像素偏移(去重)
|
||||||
|
RingOffsets(radius) {
|
||||||
|
offsets := []
|
||||||
|
seen := Map()
|
||||||
|
steps := 64
|
||||||
|
Loop steps {
|
||||||
|
a := (A_Index - 1) * (360 / steps) * 3.14159265358979 / 180
|
||||||
|
dx := Round(Cos(a) * radius)
|
||||||
|
dy := Round(Sin(a) * radius)
|
||||||
|
if (!dx && !dy)
|
||||||
|
continue
|
||||||
|
k := dx "," dy
|
||||||
|
if seen.Has(k)
|
||||||
|
continue
|
||||||
|
seen[k] := 1
|
||||||
|
offsets.Push({ x: dx, y: dy })
|
||||||
|
}
|
||||||
|
return offsets
|
||||||
|
}
|
||||||
|
|
||||||
|
BGR(c) => ((Integer("0x" c) & 0xFF) << 16) | (Integer("0x" c) & 0xFF00) | ((Integer("0x" c) >> 16) & 0xFF)
|
||||||
|
|
||||||
|
PlaceOverlay() {
|
||||||
|
global g, CORNER, MONITOR, MARGIN_X, MARGIN_Y
|
||||||
|
if !g
|
||||||
|
return
|
||||||
|
n := MONITOR
|
||||||
|
if (n < 1 || n > MonitorGetCount())
|
||||||
|
n := 1
|
||||||
|
MonitorGetWorkArea(n, &mL, &mT, &mR, &mB)
|
||||||
|
g.GetPos(, , &w, &h)
|
||||||
|
|
||||||
|
vert := "bottom", horiz := "left"
|
||||||
|
parts := StrSplit(CORNER, "-")
|
||||||
|
if (parts.Length >= 2) {
|
||||||
|
vert := parts[1]
|
||||||
|
horiz := parts[2]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (horiz = "left")
|
||||||
|
x := mL + MARGIN_X
|
||||||
|
else if (horiz = "right")
|
||||||
|
x := mR - w - MARGIN_X
|
||||||
|
else
|
||||||
|
x := mL + (mR - mL - w) // 2
|
||||||
|
|
||||||
|
if (vert = "top")
|
||||||
|
y := mT + MARGIN_Y
|
||||||
|
else if (vert = "middle")
|
||||||
|
y := mT + (mB - mT - h) // 2
|
||||||
|
else
|
||||||
|
y := mB - h - MARGIN_Y
|
||||||
|
|
||||||
|
g.Move(x, y)
|
||||||
|
}
|
||||||
|
|
||||||
|
ToggleOverlay() {
|
||||||
|
global g
|
||||||
|
if DllCall("IsWindowVisible", "Ptr", g.Hwnd)
|
||||||
|
g.Hide()
|
||||||
|
else
|
||||||
|
g.Show("NoActivate")
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildMenu() {
|
||||||
|
global INI, LNK
|
||||||
|
A_TrayMenu.Delete()
|
||||||
|
A_TrayMenu.Add("显示 / 隐藏", (*) => ToggleOverlay())
|
||||||
|
A_TrayMenu.Add("重新载入配置", (*) => Reload())
|
||||||
|
A_TrayMenu.Add("打开配置文件", (*) => Run('"' INI '"'))
|
||||||
|
A_TrayMenu.Add()
|
||||||
|
A_TrayMenu.Add("开机自启", MenuToggleStartup)
|
||||||
|
A_TrayMenu.Add()
|
||||||
|
A_TrayMenu.Add("退出", (*) => ExitApp())
|
||||||
|
if FileExist(LNK)
|
||||||
|
A_TrayMenu.Check("开机自启")
|
||||||
|
}
|
||||||
|
|
||||||
|
MenuToggleStartup(ItemName, ItemPos, MyMenu) {
|
||||||
|
global LNK
|
||||||
|
if FileExist(LNK) {
|
||||||
|
RemoveStartup()
|
||||||
|
MyMenu.Uncheck(ItemName)
|
||||||
|
} else {
|
||||||
|
EnsureStartup()
|
||||||
|
if FileExist(LNK)
|
||||||
|
MyMenu.Check(ItemName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EnsureStartup() {
|
||||||
|
global APP_NAME, LNK
|
||||||
|
if FileExist(LNK)
|
||||||
|
return true
|
||||||
|
try {
|
||||||
|
sh := ComObject("WScript.Shell")
|
||||||
|
sc := sh.CreateShortcut(LNK)
|
||||||
|
sc.TargetPath := A_AhkPath
|
||||||
|
sc.Arguments := '"' A_ScriptFullPath '"'
|
||||||
|
sc.WorkingDirectory := A_ScriptDir
|
||||||
|
sc.IconLocation := A_AhkPath ",0"
|
||||||
|
sc.Description := "nameit - 屏幕角落设备名水印"
|
||||||
|
sc.Save()
|
||||||
|
} catch {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return FileExist(LNK) ? true : false
|
||||||
|
}
|
||||||
|
|
||||||
|
RemoveStartup() {
|
||||||
|
global LNK
|
||||||
|
if FileExist(LNK)
|
||||||
|
try FileDelete LNK
|
||||||
|
}
|
||||||
|
|
||||||
|
UsageText() {
|
||||||
|
return "nameit - 屏幕角落设备名水印`n`n"
|
||||||
|
. "用法:`n"
|
||||||
|
. " 双击 nameit.ahk 启动水印`n"
|
||||||
|
. " nameit.ahk --install 设置开机自启(并启动)`n"
|
||||||
|
. " nameit.ahk --uninstall 取消开机自启`n"
|
||||||
|
. " nameit.ahk --help 显示本帮助`n`n"
|
||||||
|
. "配置:编辑同目录 nameit.ini,托盘右键菜单可打开/重新载入。"
|
||||||
|
}
|
||||||
|
|
||||||
|
IniTemplate() {
|
||||||
|
return "; ============================================================" "`n"
|
||||||
|
. "; nameit 配置文件(UTF-8)" "`n"
|
||||||
|
. "; 修改后:托盘图标右键 -> 重新载入配置(或重启脚本)" "`n"
|
||||||
|
. "; ============================================================" "`n"
|
||||||
|
. "" "`n"
|
||||||
|
. "[general]" "`n"
|
||||||
|
. "; 显示的文字;留空 = 自动使用本机电脑名" "`n"
|
||||||
|
. "Text=" "`n"
|
||||||
|
. "; 大小写:as-is 原样 / upper 全大写 / lower 全小写" "`n"
|
||||||
|
. "Case=as-is" "`n"
|
||||||
|
. "" "`n"
|
||||||
|
. "[font]" "`n"
|
||||||
|
. "; 字体名;留空 = 自动(纯英文用 Segoe UI,含中文用 Microsoft YaHei UI)" "`n"
|
||||||
|
. "Face=" "`n"
|
||||||
|
. "; 字高(像素)" "`n"
|
||||||
|
. "SizePx=50" "`n"
|
||||||
|
. "; 字重:700 粗体 / 400 常规" "`n"
|
||||||
|
. "Weight=700" "`n"
|
||||||
|
. "" "`n"
|
||||||
|
. "[color]" "`n"
|
||||||
|
. "; 字身颜色(RRGGBB)" "`n"
|
||||||
|
. "Text=FFFFFF" "`n"
|
||||||
|
. "; 描边颜色(RRGGBB)" "`n"
|
||||||
|
. "Stroke=000000" "`n"
|
||||||
|
. "; 描边粗细(像素),0 = 不描边" "`n"
|
||||||
|
. "StrokeWidth=4" "`n"
|
||||||
|
. "" "`n"
|
||||||
|
. "[layout]" "`n"
|
||||||
|
. "; 位置: top / middle / bottom 配 left / center / right" "`n"
|
||||||
|
. "; 例如 bottom-left、top-right、middle-center" "`n"
|
||||||
|
. "Corner=bottom-left" "`n"
|
||||||
|
. "; 显示器编号:1 = 主显示器,2 = 第二块…" "`n"
|
||||||
|
. "Monitor=1" "`n"
|
||||||
|
. "; 到屏幕边缘的间距(像素)" "`n"
|
||||||
|
. "MarginX=24" "`n"
|
||||||
|
. "MarginY=18" "`n"
|
||||||
|
}
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
; ============================================================
|
||||||
|
; nameit 配置文件(UTF-8)
|
||||||
|
; 修改后:托盘图标右键 -> 重新载入配置(或重启脚本)
|
||||||
|
; ============================================================
|
||||||
|
|
||||||
|
[general]
|
||||||
|
; 显示的文字;留空 = 自动使用本机电脑名
|
||||||
|
Text=
|
||||||
|
; 大小写:as-is 原样 / upper 全大写 / lower 全小写
|
||||||
|
Case=as-is
|
||||||
|
|
||||||
|
[font]
|
||||||
|
; 字体名;留空 = 自动(纯英文用 Segoe UI,含中文用 Microsoft YaHei UI)
|
||||||
|
Face=
|
||||||
|
; 字高(像素)
|
||||||
|
SizePx=50
|
||||||
|
; 字重:700 粗体 / 400 常规
|
||||||
|
Weight=700
|
||||||
|
|
||||||
|
[color]
|
||||||
|
; 字身颜色(RRGGBB)
|
||||||
|
Text=FFFFFF
|
||||||
|
; 描边颜色(RRGGBB)
|
||||||
|
Stroke=000000
|
||||||
|
; 描边粗细(像素),0 = 不描边
|
||||||
|
StrokeWidth=4
|
||||||
|
|
||||||
|
[layout]
|
||||||
|
; 位置: top / middle / bottom 配 left / center / right
|
||||||
|
; 例如 bottom-left、top-right、middle-center
|
||||||
|
Corner=bottom-left
|
||||||
|
; 显示器编号:1 = 主显示器,2 = 第二块…
|
||||||
|
Monitor=1
|
||||||
|
; 到屏幕边缘的间距(像素)
|
||||||
|
MarginX=24
|
||||||
|
MarginY=18
|
||||||
Reference in New Issue
Block a user