English | 简体中文
一个用于在 Windows 上快速高效切换和管理多个 Telegram 账户的工具。支持符号链接(Symlink)与 Hook 注入两种启动模式,兼具安全性与高效体验。
- 双启动模式支持:
- 符号链接模式(Symlink):通过重定向
tdata符号链接完成零拷贝账户切换。 - Hook 注入模式(DLL Hook):通过环境变量注入直接指定数据目录,免去软链接重指向,支持多账户并行运行。
- 符号链接模式(Symlink):通过重定向
- 降级保护机制(Hook Fallback):Hook 启动失败时可自动平滑降级为软链接模式启动。
- 多账户并行启动:通过
-s tag1,tag2一次启动多个账户,各自独立运行互不干扰(Hook 模式)。 - 单实例与 IPC 通信:支持单实例锁防止重复启动;多实例时通过命名管道(IPC)将切换指令转发至主进程处理。
- 窗口智能置顶:Hook 模式下检测到目标账户已在运行时,自动激活并置顶已有窗口,避免重复启动。
- 加密保护:基于 AES-256-GCM 算法加密 Telegram 敏感
key_datas数据。 - 登录凭证备份与恢复:支持凭证(Key/Identity/Info)提取与无密码重新登录重建。
- 精准进程与文件监控:实时监控 Telegram 进程生命周期与
user_data/configs登录状态,退出自动安全落盘。
- Python 3.12+ (使用
uv依赖管理) - Windows 10/11 (64-bit)
# 克隆项目
git clone https://github.com/Zropk66/Telegram-Account-Switcher.git
cd Telegram-Account-Switcher
# 安装依赖
uv sync
# (可选) 重新编译 hook.dll:请在 "x64 Native Tools Command Prompt for VS" 终端中运行:
# cd src/hook && compile.bat
# 打包程序 (自动生成到 output/)
python build.py
# 指定构建模式与工具链
python build.py --mode release --toolchain msvc
# 运行程序
python launcher.py打包完成后,可执行文件位于 output/ 目录,文件名包含版本号、平台与工具链信息。
| 参数 | 短参数 | 说明 | 示例 |
|---|---|---|---|
| --version | -v | 查看版本 | TAS.exe -v |
| --settings | -c | 打开 GUI 设置窗口 | TAS.exe -c |
| --switch [TAG] | -s [TAG] | 切换并启动指定账户(支持逗号分隔多账户) | TAS.exe -s tag1,tag2 |
| --tag [TAG] | -t [TAG] | 指定要操作的标签 | TAS.exe -e -t tag1 -p password |
| --key-login | -k | 强制使用备份 Key 重新登录 | TAS.exe -s tag1 -k |
| --debug | 启用 DEBUG 调试日志输出 | TAS.exe --debug |
|
| --encrypt | -e | 加密账户数据 | TAS.exe -e -p password |
| --decrypt | -d | 解密账户数据 | TAS.exe -d -p password |
| --password [PWD] | -p [PWD] | 指定加密/解密密码 | TAS.exe -s tag1 -p password |
| --help | -h | 查看帮助信息 | TAS.exe -h |
多账户启动:
--switch参数支持逗号分隔的多个标签(如-s work,personal),Hook 模式下将同时启动多个 Telegram 实例。单实例模式开启时禁止多账户启动。
Telegram/
├── Telegram.exe # Telegram 客户端程序
├── tdata/ # 当前活跃账户软链接(指向目标账户目录)
├── tdata-account1/ # 账户1 目录
│ ├── tas_tag # 账户标签标识文件(内容为对应 tag 名称)
│ ├── key_datas/ # 账户密钥数据 (支持 AES-256 加密)
│ └── ...
├── tdata-account2/ # 账户2 目录
└── ...
每个账户目录中都包含一个
tas_tag标识文件。TAS 通过读取tas_tag的内容识别账户标签,而非依赖物理文件夹名称。
-
自动扫描放置(推荐):
- 将现有 Telegram 账户文件夹(如
tdata或复制出的其他账户目录)直接放在 Telegram 客户端根目录下。 - 打开 TAS 客户端进入"设置"窗口,点击 "自动获取/扫描" 按钮,TAS 将自动检测所有账户数据并自动补全生成
tas_tag标识文件。
- 将现有 Telegram 账户文件夹(如
-
手动放置:
- 在 Telegram 程序根目录下新建文件夹(例如
tdata-work)。 - 将目标账户的数据内容(
key_datas/D877F783D5D3EF8C等)放入该文件夹中。 - 在该文件夹根目录下创建一个无后缀的文本文件
tas_tag,并在文件中写入对应的标签名称(例如work)。
- 在 Telegram 程序根目录下新建文件夹(例如
首次运行会在应用根目录自动创建 config.json 配置文件:
{
"client": "Telegram.exe",
"path": "D:/Program Files/Telegram",
"default": "main_account",
"launch_mode": "symlink",
"log_output": true,
"hook_fallback": true,
"single_instance": false,
"isolate_appid": false,
"tags": {
"tag1": {
"id": "1001",
"folder": "tdata-tag1",
"info": "...",
"identity": "...",
"key": "..."
}
}
}| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
launch_mode |
string | "symlink" |
启动模式,可选 symlink(符号链接模式)或 hook(DLL Hook 注入模式) |
hook_fallback |
bool | true |
Hook 模式启动失败时,是否自动降级为软链接模式 |
single_instance |
bool | false |
单实例模式,防止重复启动 TAS;多实例时通过 IPC 将切换指令转发至主进程 |
isolate_appid |
bool | false |
AppID 隔离开关,用于多实例窗口分组隔离 |
- 调试日志:默认仅输出
INFO级日志,如遇启动或切换问题,可添加--debug参数运行查看详细跟踪信息或检查TAS.log。 - 符号链接权限:软链接模式创建符号链接需要系统权限,建议以管理员身份运行程序或在 Windows 设置中启用"开发者模式"。
- Hook 模式:Hook 模式适用于不想频繁修改
tdata软链接的场景,支持多账户并行运行;若 Hook 注入被安全软件拦截,可开启hook_fallback自动降级。 - 单实例与多开:
single_instance开启后,重复启动 TAS 会将切换指令通过 IPC 管道转发给已运行的主进程;关闭则允许各自独立运行。单实例模式下禁止多账户同时启动。 - 窗口置顶:Hook 模式下若目标账户已在运行,TAS 会自动激活并置顶该窗口而非重复启动。
本项目基于 MIT 许可证开源。