README_simple.md 7.5 KB

简化版屏幕墙 (SimpleScreenWall)

一个基于Qt开发的轻量级实时窗口预览系统,不依赖任何第三方录制库,直接使用Windows API实现窗口捕获和预览功能。

🚀 项目特色

✨ 核心功能

  • 实时桌面预览 - 显示当前桌面的实时画面
  • 窗口图标列表 - 展示所有活动窗口的图标和标题
  • 实时窗口预览 - 选中窗口后显示其实时内容
  • 最小化窗口支持 - 即使窗口最小化也能预览最后画面
  • 智能缓存机制 - 优化性能,减少资源占用

🎯 技术优势

  • 零依赖 - 不需要AvRecorder、FFmpeg等第三方库
  • 轻量级 - 直接使用Windows API,占用资源少
  • 高性能 - 多线程架构,智能缓存优化
  • 易部署 - 独立可执行文件,无需复杂配置
  • 可配置 - 丰富的参数设置,适应不同需求

📋 系统要求

  • 操作系统: Windows 10/11 (x64)
  • Qt版本: Qt 6.2 或更高版本
  • 编译器: MSVC 2019/2022 或 MinGW
  • 内存: 建议 4GB 以上
  • 显卡: 支持基本图形加速

🛠️ 编译构建

方法一:使用CMake (推荐)

# 1. 克隆或下载项目文件
# 确保以下文件在同一目录:
# - screenwall_simple.h
# - screenwall_simple.cpp  
# - main_simple.cpp
# - CMakeLists_simple.txt

# 2. 创建构建目录
mkdir build
cd build

# 3. 配置项目
cmake .. -G "Visual Studio 17 2022" -A x64
# 或者使用 MinGW:
# cmake .. -G "MinGW Makefiles"

# 4. 编译项目
cmake --build . --config Release

# 5. 运行程序
.\bin\SimpleScreenWall.exe

方法二:使用Qt Creator

  1. 打开Qt Creator
  2. 选择 "Open Project"
  3. 选择 CMakeLists_simple.txt 文件
  4. 配置Kit(选择合适的Qt版本和编译器)
  5. 点击 "Build" 按钮编译
  6. 点击 "Run" 按钮运行

方法三:手动编译

# 使用qmake(需要先创建.pro文件)
qmake -project
qmake
make  # 或 nmake (Windows)

🎮 使用说明

启动程序

  1. 运行 SimpleScreenWall.exe
  2. 点击 "▶️ 启动" 按钮开始屏幕墙服务
  3. 程序将自动开始捕获桌面和窗口内容

界面布局

┌─────────────────────────────────────────┐
│  🖥️ 简化版屏幕墙控制面板                    │
│  [▶️ 启动] [⏹️ 停止] [🔄 刷新] [⚙️ 设置]     │
├─────────────────────────────────────────┤
│           桌面实时预览区域                  │
│        (点击可切换到桌面预览)               │
├─────────────────────────────────────────┤
│  [图标1] [图标2] [图标3] [图标4] ...       │
│     窗口图标列表 (可滚动)                  │
├─────────────────────────────────────────┤
│         选中窗口的实时预览                  │
│      (显示窗口的实时内容)                  │
└─────────────────────────────────────────┘

操作指南

  • 选择窗口: 点击中间区域的窗口图标
  • 桌面预览: 点击上方的桌面预览区域
  • 刷新列表: 点击 "🔄 刷新" 按钮更新窗口列表
  • 调整设置: 点击 "⚙️ 设置" 打开配置对话框
  • 查看日志: 使用菜单 "视图" -> "显示/隐藏日志" (Ctrl+L)

⚙️ 配置选项

性能设置

  • 桌面更新间隔: 100-5000ms (默认: 500ms)
  • 窗口列表更新间隔: 500-10000ms (默认: 2000ms)
  • 窗口预览更新间隔: 100-2000ms (默认: 200ms)
  • 最大缓存数量: 10-200个 (默认: 50个)

显示设置

  • 缩略图尺寸: 80x60 到 300x225 像素
  • 桌面预览尺寸: 200x150 到 800x600 像素

功能开关

  • 启用桌面预览: 开启/关闭桌面实时捕获
  • 启用窗口预览: 开启/关闭窗口实时捕获
  • 显示最小化窗口: 是否在列表中显示最小化的窗口

🔧 高级功能

快捷键

  • F5 / Ctrl+R: 刷新窗口列表
  • Ctrl+L: 显示/隐藏日志面板
  • Ctrl+Shift+L: 清空日志
  • Ctrl+,: 打开设置对话框
  • Ctrl+Q: 退出程序

菜单功能

  • 文件菜单: 退出程序
  • 视图菜单: 刷新、日志控制
  • 工具菜单: 设置、系统信息
  • 帮助菜单: 关于信息、Qt信息

配置文件

程序会自动保存配置到 config.json 文件,包含所有用户设置。

🐛 故障排除

常见问题

Q: 程序启动后看不到任何窗口预览? A: 检查以下几点:

  • 确保有管理员权限(某些系统窗口需要)
  • 检查防火墙/杀毒软件是否阻止
  • 尝试重启程序或刷新窗口列表

Q: 预览画面卡顿或延迟严重? A: 调整性能设置:

  • 增加更新间隔时间
  • 减少缓存数量
  • 降低预览尺寸

Q: 某些窗口无法预览? A: 这是正常现象,以下窗口可能无法捕获:

  • 受保护的系统窗口
  • 使用硬件加速的全屏应用
  • 某些安全软件窗口

Q: 内存占用过高? A: 优化建议:

  • 减少最大缓存数量
  • 增加更新间隔
  • 关闭不需要的预览功能

性能优化建议

  1. 硬件配置

    • 使用SSD硬盘提升响应速度
    • 确保足够的内存空间
    • 关闭不必要的后台程序
  2. 软件设置

    • 根据实际需求调整更新频率
    • 合理设置缓存大小
    • 定期清理日志文件
  3. 系统优化

    • 关闭Windows视觉效果
    • 设置高性能电源模式
    • 更新显卡驱动程序

📊 技术架构

核心组件

SimpleScreenWall (主组件)
├── SimpleDesktopPreview (桌面预览)
├── SimpleWindowList (窗口列表)
├── SimpleWindowPreview (窗口预览)
├── SimpleWindowFinder (窗口查找)
├── SimpleCacheManager (缓存管理)
└── SimpleScreenWallUtils (工具函数)

技术栈

  • UI框架: Qt6 Widgets
  • 图像处理: Qt6 Gui (QPixmap, QPainter)
  • 系统API: Windows API (User32, GDI32, DWM)
  • 多线程: Qt6 Concurrent
  • 配置管理: JSON格式

关键API

  • EnumWindows: 枚举所有窗口
  • PrintWindow: 捕获窗口内容
  • BitBlt: 复制屏幕内容
  • GetWindowText: 获取窗口标题
  • GetWindowIcon: 获取窗口图标

🔄 版本历史

v1.0.0 (当前版本)

  • ✅ 实现基本的屏幕墙功能
  • ✅ 支持实时桌面和窗口预览
  • ✅ 添加配置管理和缓存优化
  • ✅ 完善的用户界面和交互
  • ✅ 详细的日志和错误处理

计划功能 (未来版本)

  • 🔄 多显示器支持
  • 🔄 窗口搜索和过滤
  • 🔄 预览录制功能
  • 🔄 主题和皮肤系统
  • 🔄 插件扩展机制

🤝 贡献指南

欢迎提交问题报告、功能建议或代码贡献!

开发环境设置

  1. 安装Qt 6.2+和合适的编译器
  2. 克隆项目代码
  3. 使用Qt Creator或CMake构建
  4. 运行测试确保功能正常

代码规范

  • 使用C++17标准
  • 遵循Qt编码规范
  • 添加适当的注释和文档
  • 确保跨平台兼容性(主要支持Windows)

📄 许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

📞 联系方式

  • 项目主页: [GitHub Repository]
  • 问题反馈: [GitHub Issues]
  • 邮箱支持: support@simplescreenwall.com
  • QQ群: 123456789

简化版屏幕墙 - 让窗口预览变得简单高效! 🚀