# zmtb **Repository Path**: about404/zmtb ## Basic Information - **Project Name**: zmtb - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-22 - **Last Updated**: 2026-01-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 桌面应用程序备份与还原系统 (ZMTB) ## 项目简介 ZMTB (桌面备份) 是一个专为 Windows 系统设计的桌面应用程序备份与还原工具。该系统能够自动扫描桌面快捷方式和文件,分析应用程序依赖关系,并在系统重装后快速还原用户的桌面环境,包括应用程序快捷方式、运行库依赖(VC++ Redistributable、.NET Framework、DirectX)以及相关配置。 ## 主要特性 - **智能扫描**:自动识别桌面快捷方式和文件,区分应用程序和普通文件 - **依赖分析**:自动检测应用程序所需的运行库依赖 - **自动发现**:支持发现非C盘安装的应用程序(LV02版本新增) - **快捷方式管理**:支持快捷方式的备份和还原,包括系统级快捷方式 - **注册表支持**:支持应用程序注册表信息的备份和还原 - **运行库安装**:支持自动安装必要的运行库环境 - **配置管理**:使用INI配置文件保存备份信息 - **详细日志**:提供完整的操作日志记录 ## 系统要求 - **操作系统**:Windows 10/11 或 Windows Server 2016+ - **Python版本**:Python 3.8 或更高版本 - **权限要求**:管理员权限(用于注册表操作和系统目录访问) ## 安装指南 ### 1. 安装Python依赖 ```bash # 进入项目目录 cd DesktopBackupRestore # 安装核心依赖 pip install -r requirements.txt ``` ### 2. 安装可选依赖(推荐) 系统需要以下可选依赖以支持完整功能: ```bash # 安装额外依赖 pip install pywin32 pyinstaller ``` ### 3. 验证安装 ```bash python main.py --help ``` ## 使用方法 ### 备份桌面 #### 基本备份 ```bash python main.py backup ``` #### 指定项目目录 ```bash python main.py backup --project-dir "D:\MyBackup" ``` #### 详细输出模式 ```bash python main.py backup -v # 或 python main.py backup --verbose ``` ### 还原桌面 #### 基本还原 ```bash python main.py restore ``` #### 指定项目目录 ```bash python main.py restore --project-dir "D:\MyBackup" ``` #### 详细输出模式 ```bash python main.py restore -v # 或 python main.py restore --verbose ``` ### 使用批处理脚本 项目提供了便捷的批处理脚本,可以双击运行: ```batch # 双击运行此脚本进行还原 scripts\auto_restore.bat ``` ### 运行库安装工具 如需手动安装运行库,可以使用运行库安装工具: ```bash # 进入scripts目录 cd scripts # 运行运行库安装工具 python auto_restore.py ``` ## 项目结构 ``` DesktopBackupRestore/ ├── core/ # 核心功能模块 │ ├── backup_engine.py # 备份引擎 │ ├── config_manager.py # 配置管理器 │ └── restore_engine.py # 还原引擎 ├── utils/ # 工具模块 │ ├── app_discovery.py # 应用程序发现(LV02) │ ├── dependency_checker.py # 依赖检测 │ ├── file_utils.py # 文件操作工具 │ ├── registry_utils.py # 注册表操作 │ └── subprocess_utils.py # 子进程工具 ├── tests/ # 测试文件 │ ├── test_backup_engine.py │ ├── test_config_manager.py │ ├── test_dependency_checker.py │ ├── test_file_utils.py │ ├── test_integration.py │ ├── test_registry_utils.py │ └── test_restore_engine.py ├── scripts/ # 脚本工具 │ └── auto_restore.py ├── data/ # 数据目录 │ └── configs/ # 配置文件目录 ├── main.py # 主入口 ├── pytest.ini # pytest配置 ├── requirements.txt # 依赖列表 └── README.md # 本文档 ``` ## 配置文件说明 系统使用INI格式的配置文件(`data/configs/tblj.ini`)保存备份信息。 ### 配置文件格式 ```ini [Desktop] # 桌面快捷方式列表 shortcuts = item1.lnk, item2.lnk [DesktopFiles] # 桌面文件列表 files = file1.txt, file2.pdf [Applications] # 应用程序信息 app1 = {"name": "App1", "path": "C:\\Path\\to\\app1.exe", "dependencies": ["vcredist_x86"]} [Registry] # 注册表备份信息 registry_keys = HKEY_CURRENT_USER\\Software\\MyApp [BackupInfo] # 备份信息 timestamp = 2024-01-01 00:00:00 version = 1.0 ``` ## 测试说明 项目包含完整的单元测试和集成测试。 ### 运行单元测试 ```bash # 运行所有单元测试 pytest tests/ -v # 运行特定测试文件 pytest tests/test_backup_engine.py -v # 生成测试覆盖率报告 pytest tests/ --cov=DesktopBackupRestore --cov-report=html ``` ### 测试覆盖范围 - `test_backup_engine.py` - 备份引擎功能测试 - `test_config_manager.py` - 配置管理器测试 - `test_dependency_checker.py` - 依赖检测测试 - `test_file_utils.py` - 文件工具测试 - `test_integration.py` - 集成测试 - `test_registry_utils.py` - 注册表工具测试 - `test_restore_engine.py` - 还原引擎测试 ## 开发指南 ### 代码规范 - 使用Python类型注解 - 遵循PEP 8编码规范 - 每个函数需要包含docstring ### 架构设计 系统采用模块化设计: 1. **core/** - 核心业务逻辑 2. **utils/** - 通用工具函数 3. **tests/** - 测试用例 ### 扩展开发 #### 添加自定义检测器 可以在`utils/custom_detector.py`中创建自定义检测器: ```python from utils.dependency_checker import DependencyChecker class CustomDetector: def __init__(self): self.checker = DependencyChecker() def detect_custom_deps(self, exe_path: str) -> dict: # 自定义检测逻辑 pass ``` #### 添加新子命令 在`main.py`中添加新的子命令: ```python import argparse def add_custom_subcommand(subparsers): parser = subparsers.add_parser('custom', help='自定义命令') parser.add_argument('--option', help='自定义选项') parser.set_defaults(func=custom_command_handler) def custom_command_handler(args): # 处理逻辑 pass ``` ## 性能说明 - 桌面扫描通常在几秒内完成 - 依赖分析可能需要更长时间(取决于应用程序数量) - 建议在备份时使用`-v`选项查看详细进度 ## 安全性说明 - 系统仅访问用户有权限访问的文件和注册表 - 不会修改系统关键设置 - 所有操作都会记录到日志文件 - 建议在操作前创建系统还原点 ## 故障排除 ### 常见问题 1. **权限不足** - 确保以管理员身份运行程序 2. **配置文件不存在** - 请先执行备份操作生成配置文件 3. **快捷方式还原失败** - 检查源文件是否仍然存在 - 验证快捷方式指向的路径是否有效 4. **运行库安装失败** - 手动下载并安装所需的运行库 - 检查网络连接 ### 日志查看 日志文件默认保存在项目目录下的`logs/`目录中: ```bash # 查看最新日志 type logs\zmtb_*.log ``` ## 贡献指南 欢迎提交Issue和Pull Request: 1. Fork本项目 2. 创建功能分支 3. 提交更改 4. 推送到仓库 5. 创建Pull Request ## 许可证 本项目采用 MIT 许可证。 ## 支持 如有问题或建议,请通过以下方式联系: - **Gitee仓库**:https://gitee.com/about404/zmtb - **Issue反馈**:https://gitee.com/about404/zmtb/issues --- **版本信息** - 当前版本:LV02 - 更新日期:2024年