跳到主要内容

🛰️ 环境初始化模块(Inject)

📌 函数: HD通讯.初始化

描述

初始化插件环境

原型

__int64 __stdcall HCInject_Init(__int32 窗口序号,BOOL 是否重置=FALSE);

参数

__int32 窗口序号 - 窗口序号(从1开始)
bool 是否重置 - 真(TRUE)就行

返回值

查看返回值表

注意事项

每次打开游戏都需要先初始化一次
不要多次初始化
该接口还会把当前全局进程位数HCEnv_SetProcessType与当前窗口序号进程绑定,省去了切换进程位数的操作,如果不绑定可能会返回-1107(ERROR_进程位数不匹配)

HD通讯.初始化 - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.初始化 - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.初始化 - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.初始化Ex

描述

初始化插件环境

原型

__int64 __stdcall HCInject_InitEx(__int32 窗口序号,char* 预加载LUA模块全路径,BOOL 是否重置=FALSE);

参数

__int32 窗口序号 - 窗口序号(从1开始)
char* 预加载LUA模块全路径 - 指定一个LUA文件路径+文件名(当插件被加载的时候会自动执行这个LUA文件),通讯后执行
bool 是否重置 - 是否重置

返回值

查看返回值表

注意事项

每次打开游戏都需要先初始化一次
不要多次初始化
如果不需要用LUA来初始化自己的数据,可以直接使用HCInject_Init
该接口还会把当前全局进程位数HCEnv_SetProcessType与当前窗口序号进程绑定,省去了切换进程位数的操作,如果不绑定可能会返回-1107(ERROR_进程位数不匹配)

HD通讯.初始化Ex - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.初始化Ex - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.初始化Ex - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.初始化Exx

描述

初始化插件环境

原型

__int64 __stdcall HCInject_InitExx(__int32 窗口序号,char* 预加载DLL模块全路径=NULL,char* 预加载LUA模块全路径=NULL,__int32 addType=-1,BOOL 是否重置=FALSE);

参数

__int32 窗口序号 - 窗口序号(从1开始)
char* 预加载DLL模块全路径 - 指定一个预加载的DLL,通讯前直接加载
char* 预加载LUA模块全路径 - 指定一个LUA文件路径+文件名(当插件被加载的时候会自动执行这个LUA文件),通讯后执行
__int32 addType - -1/0/1无痕无模块加载DLL2普通加载DLL
bool 是否重置 - 是否重置

返回值

查看返回值表

注意事项

每次打开游戏都需要先初始化一次
不要多次初始化
如果不需要用LUA来初始化自己的数据或者预加载DLL,可以直接使用HCInject_Init
该接口还会把当前全局进程位数HCEnv_SetProcessType与当前窗口序号进程绑定,省去了切换进程位数的操作,如果不绑定可能会返回-1107(ERROR_进程位数不匹配)

HD通讯.初始化Exx - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.初始化Exx - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.初始化Exx - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.获取PID

描述

获取打开的进程PID

原型

__int64 __stdcall HCInject_GetPid(__int32 窗口序号);

参数

__int32 窗口序号 - 窗口序号(从1开始)

返回值

查看返回值表

注意事项

调用这个接口之前必须保证插件已经加载才会获取PID

HD通讯.获取PID - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取PID - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取PID - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.获取之前PID

描述

获取打开的进程之前的PID(可以用于重连)

原型

__int64 __stdcall HCInject_GetPrePid(__int32 窗口序号);

参数

__int32 窗口序号 - 窗口序号(从1开始)

返回值

查看返回值表

注意事项

当我们在调试的时候中控如果崩了,如果此时插件还在游戏进程中执行,那么可以当打开中控的时候直接获取PID进行通讯,而不是调用初始化之类的操作

HD通讯.获取之前PID - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取之前PID - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取之前PID - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.获取绑定窗口序号

描述

通过进程PID尝试拿到绑定的窗口序号

原型

__int64 __stdcall HCInject_GetPreWinIndex(__int32 pid);

参数

__int32 pid - 指定一个进程PID

返回值

查看返回值表

注意事项

返回如果大于等于0的值表示之前进程绑定的窗口序号
没有进程PID返回-1178
没有绑定过返回-1179

HD通讯.获取绑定窗口序号 - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取绑定窗口序号 - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取绑定窗口序号 - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HCInject_GetPreWinIndexEx

描述

通过进程PID尝试拿到绑定的窗口序号

原型

__int64 __stdcall HCInject_GetPreWinIndexEx(__int32 pid,__int32 winIndex,__int64 checkFun);

参数

__int32 pid - 窗口序号winIndex

返回值

查看返回值表

注意事项

返回如果大于等于0的值表示之前进程绑定的窗口序号
没有进程PID返回-1178
没有绑定过返回-1179

HCInject_GetPreWinIndexEx - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HCInject_GetPreWinIndexEx - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HCInject_GetPreWinIndexEx - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.获取窗口句柄

描述

获取窗口句柄,内部是通过PID获取窗口句柄需要先安装好插件到目标进程

原型

__int64 __stdcall HCInject_GetHwnd(__int32 窗口序号,char* className,char* title,__int32 filter,BOOL bType,__int32 mis=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)
char* className - 窗口类名(不指定为NULL/0)
char* title - 窗口标题(不指定为NULL/0)
__int32 filter - 1标题2类名8检测是否无父窗口16检查窗口句柄是否有效多个标识可以用|累加
bool bType - 真/1为模糊匹配假/0为完全匹配
__int32 mis - 循环检查毫秒数mis<=0表示不需要循环获取>0表示内部循环获取句柄直到有值

返回值

查看返回值表

注意事项

内部是通过HCWIN_EnumWindowByProcessId获取

HD通讯.获取窗口句柄 - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取窗口句柄 - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取窗口句柄 - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.获取窗口句柄Ex

描述

获取窗口句柄(需要内置,一般不需要调用这个获取句柄),如果需要通过PID获取句柄请调用HCInject_GetHwnd

原型

__int64 __stdcall HCInject_GetHwndEx(__int32 窗口序号);

参数

__int32 窗口序号 - 窗口序号(从1开始)

返回值

查看返回值表

注意事项

这个接口和内置的游戏接口有关,需要搭建完通讯才能调用
并不是一定获取到
如果要获取进程句柄还需要自行获取,除非内置了游戏数据

HD通讯.获取窗口句柄Ex - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取窗口句柄Ex - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.获取窗口句柄Ex - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.继续

描述

继续环境加载操作

原型

__int64 __stdcall HCInject_Continue(__int32 窗口序号);

参数

__int32 窗口序号 - 窗口序号(从1开始)

返回值

查看返回值表

注意事项

当我们调用了HCEnv_Load后需要调用这个接口来验证

HD通讯.继续 - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.继续 - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.继续 - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.存数据

描述

存自定义二进制数据

原型

__int64 __stdcall HCInject_SetData(__int32 窗口序号,void* 用户数据缓冲区,__int32 数据大小);

参数

__int32 窗口序号 - 窗口序号(从1开始)
void 用户数据缓冲区 - 数据的来源缓冲区(可以字符串JSON其他类型值)内部会拷贝一份并存储到目标进程中方便下一次获取
__int32 数据大小 - 数据的来源缓冲区中有效数据的大小总大小1024字节

返回值

查看返回值表

注意事项


HD通讯.存数据 - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.存数据 - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.存数据 - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

📌 函数: HD通讯.取数据

描述

取自定义二进制数据

原型

__int64 __stdcall HCInject_GetData(__int32 窗口序号,void* 用户数据缓冲区,__int32 缓冲区大小);

参数

__int32 窗口序号 - 窗口序号(从1开始)
void 用户数据缓冲区 - 数据的存储缓冲区取的数据就是用HCInject_SetData接口存的数据
__int32 缓冲区大小 - 数据的存储缓冲区数据的大小不能小于等于0从内部取的数据最大为1024

返回值

查看返回值表

注意事项

取的数据就是用HCInject_SetData接口存的数据

HD通讯.取数据 - 基础示例

// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.取数据 - 进阶用法

// huoshanpc 示例2
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;

HD通讯.取数据 - 高级应用

// huoshanpc 示例3 高级用法
// 火山PC示例代码
// 这里可以放置与说明内容相关的代码示例
代码内容;