注册表工具类

注册表工具类


#pragma once #include <Windows.h> #include <string> class Registry { public: // 定义注册表值的类型枚举 enum class RegistryValueKind { None = REG
劫持窗口完成全屏渲染

劫持窗口完成全屏渲染


通过劫持NVIDIA GeForce或AMD Software的窗口,即可实现全屏渲染。 Overlay.h #pragma once #include <d2d1.h> #include <dwrite.h> #include <windows.h> class Overlay { publi
从剪贴板获得图片内容

从剪贴板获得图片内容


用到的库 opencv【v4.8.0】:用于解码剪贴板中的位图数据 openssl【v1.1.1】:用于对图片数据进行 base64 编码 代码 #include <Windows.h> #include <stdio.h> #include <opencv2/opencv.hpp> #includ
CMake管理多个小项目

CMake管理多个小项目


目录结构 {总项目目录}/ |-- {子项目目录}/ | |-- main.cpp |-- {子项目目录}/ | |-- main.cpp |-- CMakeLists.txt ``` ## CMakeLists.txt ```cmake cmake_minimum
CEF离屏渲染支持-webkit-app-region属性

CEF离屏渲染支持-webkit-app-region属性

SOUI 

将CEF官方Demo中的tests/cefclient/browser/root_window_win.cc下列代码拷贝到自己的离屏渲染项目中,并做修改。 核心原理则是通过OnDraggableRegionsChanged函数获得当前可拖拽区域,再通过劫持窗口消息,实现窗口拖拽。 kDraggabl
C++获取指定进程命令行参数

C++获取指定进程命令行参数


可以使用 WMI 获取指定进程的输入命令行。 代码示例: bool SelectQuerySQL(LPCWSTR SQL, LPCWSTR Key, OUT char* outBuf, IN size_t bufSize) { HRESULT hRes; CoUninitializ
CEF源码再编译支持MP4格式

CEF源码再编译支持MP4格式


准备工作 1、寻找自己需要的CEF版本,这里Branch为4389,commit为b36241d 参考链接:chromiumembedded / cef / wiki / BranchesAndBuilding — Bitbucket
解决代码自映射后无法调试 & inline hook【Self-Remapping Code】

解决代码自映射后无法调试 & inline hook【Self-Remapping Code】


前言 在一次汉化游戏的过程中,遇见了游戏的CRC校验。笔者想过掉该CRC检测,而由于游戏的代码是通过自映射后的内存区域,无法利用VirtualProtect函数进行修改。所以有了本文记录~ 0x1 如何判断代码用了自映射 判断的方法有以下几点要素: 游戏没有驱动级保护【事无绝对,可能有也会用到此技术
PID控制器

PID控制器


基础解释: P:基础运动量(移动速度) I:增幅器(修正误差) D:抑制器(阻止超出目标) 各个参数过大过小情况 P参数 过小:不能达到目标 过大:超出目标,表现为抖动或脱离控制 I参数 过小:不能到目标,小偏差不能回正,还可能出现颤抖现象 过大:很容易超出目标,表现为系统迟钝,晃动 D参数 过小:
Win32 UI拦截贴靠布局方法

Win32 UI拦截贴靠布局方法

SOUI 

在开发过程中,有一个需求是窗口可以调节大小。但是有最大和最小区间。而Win11有一个贴靠布局功能,这会导致窗口大小突破限制。所以我们需要拦截Win11的贴靠布局。在网上搜索了一番没有找到禁用方式,所以只能用过窗口尺寸改变的时候拦截了,一开始笔者找的是WM_SIZING,但是测试了一下发现贴靠布局不会