|
发表于 2025-1-20 18:51:32
|
显示全部楼层
|阅读模式
| Edg | Windows 10

在这个版本中,我对一些功能进行了改进,以使其能够更好地工作(至少对我来说是这样)。
使用说明:
- 编译项目:
- 安装 Visual Studio。
- 打开 .sln 文件。
- 点击“生成”,选择“生成解决方案”。
更改:
将项目重写为 C++。
重新结构化代码。
屏幕捕获:
参数和返回类型的变化: 旧版本:get_screenshot 接受一个 save_name 参数,以便可选地将屏幕截图直接保存到文件中。返回类型为 unsigned int*,指向动态分配的内存。 新版本:删除了 save_name 参数,专注于返回像素缓冲区。该函数使用现代 C++(std::unique_ptr 进行内存管理),简化了清理责任。
内存管理: 旧版本:使用原始指针(malloc 和 free)为像素存储分配内存。如果在释放前发生错误,这种方法可能导致内存泄漏。 新版本:使用 std::unique_ptr 进行自动内存管理,使代码更安全且不易出错。
位图配置: 旧版本:位图头部使用自定义计算手动准备。 新版本:简化头部准备,确保高度为负(biHeight = -crop_height),以使用自上而下的 DIB 格式,显得更直观。
文件保存逻辑: 旧版本:将文件保存逻辑直接嵌入 get_screenshot 中。 新版本:将文件保存逻辑分离到一个专用的 pixelsToBMP 函数中,提高了模块化和可重用性。
配置: 引入了新的配置系统,配置从内存加载,允许您在首次使用时设置配置,或坚持预定义的设置,并可以在程序启动时修改配置。 配置被保存到一个加密的 config.dat 文件中,使其更难以逆向解析。 仍然比从文本文件解析设置要好。
多线程: 现在程序可以并行进行屏幕捕获、监听切换键和刷新屏幕。
性能: 通过将捕获过程限制为可轻松配置的特定刷新率,减少了内存使用和 CPU 使用。
捕获过程耗时 10~16 毫秒,这对于 ≤ 60FPS 的用户来说是完美的。
用户界面: 用户界面现在得到了改善,显示当前配置的几个详细信息、颜色机器人状态(是否空闲或活动)以及与配置的帧响应时间相比的响应时间(告诉您程序是否比您的刷新率快或慢)。
|
|