AutoHotkey v2 快捷登录脚本:一键输入多环境账号密码(含 VSCode 配置)

#发布说明(CSDN)#

- 面向 Windows 用户的登录辅助脚本,使用 AutoHotkey v2.0+ 。
- 通过 Ctrl+7 / Ctrl+8 / Ctrl+9 快捷键,自动输入不同环境的账号密码。
- 配套 login-config.ini 管理多环境账号,配合 VSCode 编码与运行。

#功能介绍#

- 快捷登录:在目标登录窗口激活时,按 Ctrl+7 → [local] 、 Ctrl+8 → [dev] 、 Ctrl+9 → [prd] 。
- 输入流程:输入用户名 → Tab → 输入密码 → Enter 提交。
- 兼容性优化:密码输入优先使用 SendText ,失败自动回退为剪贴板粘贴并恢复原剪贴板。

#环境准备#(AHK 版本、VSCode 扩展)

- 安装 AutoHotkey v2 :从官网下载安装 AutoHotkey v2.0+ (默认路径一般为 C:\Program Files\AutoHotkey\AutoHotkey64.exe )。版本:AutoHotkey_2.0.5 。注意最新版不可使用

https://www.autohotkey.com/download/2.0/AutoHotkey_2.0.5_setup.exe
- 建议安装 VSCode 及 AHK 扩展(如代码调试):
- AutoHotkey Plus Plus (扩展标识: cweijan.vscode-autohotkey-plus-plus ,支持运行与调试)
- 或 AutoHotkey v2 Language Support (扩展标识: mark-wiemer.autohotkey2 ,提供语法高亮/提示)

#项目结构#

- 脚本与配置放在同一目录: d:\develop
- 关键文件:
  - d:\develop\login.ahk (主脚本)
  - d:\develop\login-config.ini (登录配置)
  - 可选: d:\develop\login.exe (脚本打包后的可执行

#脚本与配置#

脚本代码(AutoHotkey v2)

- 文件: login.ahk
- 说明:包含热键注册、稳健输入函数 TypeText 、从 INI 读取并键入的主流程。
- 代码:

#Requires AutoHotkey v2.0+
#SingleInstance Force
#Warn
; 登录辅助脚本(AHK v2)
; 用途:使用 Ctrl+7/8/9 自动输入不同环境的账号密码
; 前置:同目录存在 login-config.ini(段:[local]/[dev]/[prd])
; 安全:不落盘密码,只模拟键入;请在可信登录窗口中使用

; 配置文件路径(与脚本同目录)
confPath := A_ScriptDir . "\login-config.ini"

if !FileExist(confPath) {
    MsgBox(
        "未找到配置文件:" confPath
        "`n`n请在脚本同目录新建 login-config.ini 并填写账号信息。"
        "`n示例:"
        "`n[local]"
        "`nusername=你的账号"
        "`npassword=你的密码"
        "`n`n快捷键映射:^7→[local]  |  ^8→[dev]  |  ^9→[prd]"
        "`n保存后重新试一次。"
    )
}

; 注册热键:^7→[local]、^8→[dev]、^9→[prd];异常时弹窗提示
try {
    Hotkey("^7", SendLogin.Bind("local")  , "On")
} catch as e {
    MsgBox("注册快捷键失败:^7" e.Message)
}
try {
    Hotkey("^8", SendLogin.Bind("dev") , "On")
} catch as e {
    MsgBox("注册快捷键失败:^8" e.Message)
}
try {
    Hotkey("^9", SendLogin.Bind("prd"), "On")
} catch as e {
    MsgBox("注册快捷键失败:^9" e.Message)  
}

; 调试:验证热键是否捕获成功
TestHotkey(*) {
    MsgBox("AHK 已捕获热键(测试成功):^F12")
}

; 可靠文本输入:优先 SendText,失败时用剪贴板粘贴并恢复原剪贴板
; 说明:部分输入框不接受 SendText 会抛异常
; 回退:临时覆盖剪贴板,等待复制完成后粘贴,并在 finally 恢复
TypeText(text) {
    if (text = "")
        return
    try {
        SendText(text)
        return
    } catch {
        ; 回退到剪贴板粘贴
        clipSaved := ClipboardAll()
        try {
            Clipboard := text
            ClipWait(0.5)
            Send("^v")
        } finally {
            ; 恢复原剪贴板(可能为空)
            if (clipSaved)
                Clipboard := clipSaved
            else
                Clipboard := ""
        }
    }
}

; 从指定段读取账号并输入,完成登录
; 参数:ztype 可选 "local"/"dev"/"prd"
; 流程:输入用户名→Tab→输入密码→Enter;密码用 TypeText 提高兼容性
SendLogin(ztype := "local", *) {

    username := IniRead(confPath, ztype, "username", "") ; 读取用户名
    password := IniRead(confPath, ztype, "password", "") ; 读取密码
    if (username = "" || password = "") {
        MsgBox("用户名或密码为空,请检查:" confPath)
        return
    }
    SendInput(username) ; 用户名直接键入
    Send("{Tab}") ; 切换到密码输入框
    Sleep(150) ; 间隔,避免切换过快;可按需调整
    TypeText(password) ; 使用可靠文本输入,兼容更多窗口
    Send("{Enter}") ; 提交
}

#配置文件(INI)#

- 文件: \login-config.ini
- 注意:
  - 值不要加引号,不要留多余的空格。
  - 密码为明文存储,请评估安全性,仅在个人/受控环境使用。
- 示例(脱敏):

; 登录配置文件(AutoHotkey v2)
[local]
username= U786
password= your_local_password

[dev]
username= U786
password= your_dev_password

[prd]
username= U786
password= your_prod_password

#使用方法#

-运行 login.ahk

-将目标系统的登录窗口激活至前台。
- 按快捷键:
  - Ctrl+7 → 使用 [local] 配置
  - Ctrl+8 → 使用 [dev] 配置
  - Ctrl+9 → 使用 [prd] 配置
- 脚本会自动输入用户名 → 切换到密码框 → 输入密码 → 回车提交。
- 可在脚本中调整间隔时间:修改 Sleep(150) 以适配不同系统响应速度。

#打包为 EXE(可选)#

- 打开 Ahk2Exe (随 AutoHotkey 安装提供)。
- 选择脚本路径: \login.ahk 。
- 选择输出路径:\login.exe 。
- 点击编译,生成单一可执行文件,便于分发与双击运行。

#常见问题#

- 快捷键无响应:
  - 确认已安装 AutoHotkey v2 ,且脚本正在运行。
  - 检查是否被其他程序占用快捷键;更改为不冲突的组合。
- 输入到错误窗口:
  - 脚本会向当前激活窗口输入,请先手动聚焦到正确的登录界面。
- 配置未生效或报“用户名或密码为空”:
  - 确认 login-config.ini 与脚本在同一目录。
  - 去掉引号与多余空格;确保键名为 username 、 password 。
- 密码粘贴失败:
  - 某些输入框不接受粘贴,脚本已自动回退机制,但可能仍失败。
  - 可尝试提高 ClipWait 时间或直接用 SendInput (安全性较低)。

#安全建议#

- 避免把 login-config.ini 提交到仓库或外发,建议加入 .gitignore 。
- 仅在可信设备/环境使用;磁盘明文密码有风险。
- 如有合规要求,考虑改造为:
  - 使用系统凭据管理器(Windows Credential Manager)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值