xie-full


Node.Js调用Demo

<p><code>该语言接口需单独付费,需要请联系我</code></p> <p>DLL声明</p> <p><code>说明: 针对node-ffi的特性,WxLoader.dll做了定制版本,有需要可以联系我</code></p> <pre><code class="language-javascript">const ffi = require('ffi'); const path = require('path'); WxLoaderFile = path.resolve() '\\wxlib\\WxLoader.dll'; WeChatHelperFile = path.resolve() '\\wxlib\\WeChatHelper.dll'; let sWeChatHelperVersion = '2.6.8.51'; const WxLoader = ffi.Library(WxLoaderFile, { 'UseUtf8': ['bool', []], 'InitWeChatSocket': ['bool', [ 'pointer', 'pointer', 'pointer' ]], 'InjectWeChat': ['uint', ['string']], 'SendWeChatData': ['bool', ['uint', 'string']], 'GetUserWeChatVersion': ['bool', ['pointer']] }); // 获取用户系统上安装的微信版本号 var wxVersionBuffer = Buffer.alloc(20,'\0','binary'); WxLoader.GetUserWeChatVersion(wxVersionBuffer); var sWxVersion = wxVersionBuffer.toString('binary').replace(/\0 $/, ''); console.log('当前安装的微信版本号是:' sWxVersion ', 当前扩展支持的版本是:' sWeChatHelperVersion); if (sWxVersion != sWeChatHelperVersion) { console.log('版本不符,程序将退出'); process.exit(); } // 使用utf8编码 WxLoader.UseUtf8(); const InitWeChat = () =&amp;gt; { // 新客户端加入的回调 const ConnectCallback = ffi.Callback('void', ['int'], (iClientId) =&amp;gt; { console.log('ConnectCallback: ' iClientId); } ); // 客户端退出回调 const CloseCallback = ffi.Callback('void', ['int'], (iClientId) =&amp;gt; { console.log('CloseCallback: ' iClientId); } ); // 接收消息回调 const RecvCallback = ffi.Callback('void', ['int', 'string', 'int'], (iClientId, data, dataSize) =&amp;gt; { console.log('RecvData: ' data); var jsonData = JSON.parse(data); if (jsonData.type == 11025) { console.log('微信登录成功!'); setTimeout(function(){ var msgData = { 'type': 11036, 'data': { 'to_wxid': 'filehelper', 'content': '该消息来自Node.Js' } }; // 发送文本消息 WxLoader.SendWeChatData(iClientId, JSON.stringify(msgData)); }, 1000); } } ); // 使用闭包初始化接口 return () =&amp;gt; { console.log('InitWeChatSocket'); WxLoader.InitWeChatSocket(ConnectCallback, RecvCallback, CloseCallback); } } // 初始化接口 InitWeChat()(); // 智能多开微信 let result = WxLoader.InjectWeChat(WeChatHelperFile); console.log('微信进程号: ' result); // 解决阻塞问题 (async () =&amp;gt; { setInterval(() =&amp;gt; { //console.log('====='); }, 60); while (true) { await new Promise(resolve =&amp;gt; { setImmediate(() =&amp;gt; { // 一些处理 resolve(); }); }); } })();</code></pre>

页面列表

ITEM_HTML