|
| 1 | +# DLL介绍 |
| 2 | + |
| 3 | +dll文件有三个,分别是WxWorkHelper_3.0.14.1205.dll、WxWorkLoader_x86.dll和WxWorkLoader_x64.dll |
| 4 | + |
| 5 | +# WxWorkHelper.dll |
| 6 | + |
| 7 | +客户端程序,用于在企业微信程序内部与外界通信,用于接收指令和消息通知 |
| 8 | + |
| 9 | +# WxWorkLoader.dll |
| 10 | + |
| 11 | +管理端程序,支持32位(WxWorkLoader_x86.dll)和64位(WxWorkLoader_x64.dll)调用, 用于智能管理企业微信,如管理已经打开的企业微信进程,多开企业微信。 |
| 12 | + |
| 13 | +提供的接口如下: |
| 14 | +1. GetUserWxWorkVersion |
| 15 | + |
| 16 | + 获取当前用户的电脑上安装的企业微信版本,如: 3.0.0.1001 |
| 17 | + |
| 18 | + 函数定义: |
| 19 | + |
| 20 | + `BOOL GetUserWxWorkVersion(OUT LPSTR szVersion)` |
| 21 | + |
| 22 | + 传一个ANSI字符串缓冲区的指针,长度30即可, 这个函数可以先获取当前用户电脑上安装的微信版本,然后判断我们的dll是否支持,如果不支持就提示用户下载我们支持的版本。 |
| 23 | + |
| 24 | +2. UseUtf8 |
| 25 | + |
| 26 | + 在所有接口前执行,执行后接口全部使用utf8编码传输 |
| 27 | + |
| 28 | + 函数定义: |
| 29 | + |
| 30 | + `BOOL UseUtf8();` |
| 31 | + |
| 32 | + |
| 33 | +3. InitWxWorkSocket |
| 34 | + |
| 35 | + 用于socket的回调处理 |
| 36 | + |
| 37 | + 函数定义: |
| 38 | + |
| 39 | + `BOOL InitWxWorkSocket(IN DWORD dwConnectCallback, IN DWORD dwRecvCallback, IN DWORD dwCloseCallback)` |
| 40 | + |
| 41 | + 其中dwConnectCallback是一个函数指针类型, 在有新客户端加入时调用,结构如下: |
| 42 | + |
| 43 | + `void MyConnectCallback(int iClientId)` |
| 44 | + |
| 45 | + 传入的一个参数是socket的客户ID,返回值为空 |
| 46 | + |
| 47 | + dwRecvCallback是一个函数指针类型,在接收到新消息时调用,结构如下: |
| 48 | + |
| 49 | + `void MyRecvCallback(int iClientId, char* szJsonData, int iLen)` |
| 50 | + |
| 51 | + dwCloseCallback是一个函数指针类型,在客户端退出时调用,结果如下: |
| 52 | + |
| 53 | + `void MyCloseCallback(int iClientId)` |
| 54 | + |
| 55 | +4. InjectWxWork |
| 56 | + |
| 57 | + 用于智能多开,并注入dll, 参数1:WxWorkHelper.dll路径,参数2:WXWork.exe路径,可传空,会读取企业微信安装目录, 注入成功返回企业微信的进程ID, 失败返回0 |
| 58 | + |
| 59 | + 函数定义: |
| 60 | + |
| 61 | + `DWORD InjectWxWork(IN LPCSTR szDllPath,IN LPCSTR szWxWorkExePath);` |
| 62 | + |
| 63 | + |
| 64 | + 如果需要一个软件,管理多个企业微信,多次调用这个函数实现,通过socket回调管理客户端 |
| 65 | + |
| 66 | +5. InjectWxWorkPid |
| 67 | + 注入指定的企业微信进程,参数1: WXWork.exe进程id, 参数2: dll路径 |
| 68 | + |
| 69 | + 函数定义: |
| 70 | + |
| 71 | + `DWORD InjectWxWorkPid(IN DWORD dwPid, IN LPCSTR szDllPath)` |
| 72 | + |
| 73 | +6. InjectWxWorkMultiOpen |
| 74 | + |
| 75 | + 多开一个新的企业微信并注入,不维护已经打开的企业微信,需要两个参数,参数1:WxWorkHelper.dll的路径,参数2:指定要启动企业微信(WxWork.exe)的完整路径,如果不提供,可以设置0或空字符串,将自动读取企业微信的安装目录 |
| 76 | + |
| 77 | + 函数定义: |
| 78 | + |
| 79 | + `DWORD __stdcall InjectWxWorkMultiOpen(IN LPCSTR szDllPath, IN LPCSTR szWxWorkExePath);` |
| 80 | + |
| 81 | + |
| 82 | +7. SendWxWorkData |
| 83 | + |
| 84 | + 用于向企业微信发送指令,指令内容参考功能类。 |
| 85 | + |
| 86 | + 函数定义: |
| 87 | + |
| 88 | + ` BOOL SendWxWorkData(IN CONNID dwClientId, IN LPCSTR szJsonData);` |
| 89 | + |
| 90 | +8. DestroyWxWork |
| 91 | + |
| 92 | + 主程序退出前,执行释放函数,用于卸载DLL和关闭socket服务端 |
| 93 | + |
| 94 | + 函数定义: |
| 95 | + |
| 96 | + `BOOL DestroyWxWork();` |
| 97 | + |
| 98 | + |
0 commit comments