个人微信Hook-C#Demo开发SDK

Posted wechat-hook

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了个人微信Hook-C#Demo开发SDK相关的知识,希望对你有一定的参考价值。

技术图片

基础信息类

获取个人信息
从网络获取群成员信息
从网络获取个人信息
获取公众号信息
获取群组信息
获取群成员信息
获取单个好友信息

好友操作

修改好友备注
添加好友
删除好友
同意加好友请求
同意好友的进群邀请
接收好友的转账

群操作类

删除并退出
保存到/移出通讯录
是否显示群成员呢称
修改我在本群的呢称
修改公告
修改群名称
踢出群成员
邀请好友进群
创建群聊

发送信息

发送名片
发链接
发图片
发文件
发视频
发gif
发文本

接收信息

接收文本信息
接收图片信息
接收名片
接收视频
接收表情
接收位置
接收系统消息
接收撤回消息
接收其它消息

Demo源码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WxHookDemo

    public partial class FormMain : Form
    
        public delegate void AcceptCallbackFunc(uint dwClientId);
        public delegate void RecvCallbackFunc(uint dwClientId, IntPtr intPtr, uint dwSize);
        public delegate void CloseCallbackFunc(uint dwClientId);
        private static AcceptCallbackFunc m_AcceptCallbackFunc;
        private static RecvCallbackFunc m_RecvCallbackFunc;
        private static CloseCallbackFunc m_CloseCallbackFunc;
        // 引入DLL导出函数
        [DllImport("WxLoader.dll")]
        public static extern bool InitWeChatSocket(AcceptCallbackFunc acceptCallback,
            RecvCallbackFunc recvCallback, CloseCallbackFunc closeCallback);
        [DllImport("WxLoader.dll")]
        public static extern uint InjectWeChat(String strDllPath);
        [DllImport("WxLoader.dll")]
        public static extern bool SendWeChatData(uint dwClienId, String strJsonData);
        [DllImport("WxLoader.dll")]
        public static extern bool DestroyWeChat();
        // 建一个主窗口的实例,让静态方法可以访问
        public static FormMain Instance = null;
        // 存一个clientId,用于发送消息 (多客户端自己来维护clientId)
        public static uint WxClientId = 0;
        // 注入成功回调
        static void WxAcceptCallback(uint dwClientId)
        
            FormMain.WxClientId = dwClientId;
            FormMain.Instance.textBoxLog.BeginInvoke(new Action(() =>  FormMain.Instance.textBoxLog.AppendText("Accept\\n"); ));
        
        // 接收消息回调
        static void WxRecvCallback(uint dwClient, IntPtr intPtr, uint dwSize)
        
            String recvData = Marshal.PtrToStringAnsi(intPtr);
            FormMain.Instance.Invoke(new Action<String>(FormMain.Instance.textBoxLog.AppendText), recvData + "\\n");
        
        // 关闭回调
        static void WxCloseCallback(uint dwClient)
        
            FormMain.Instance.Invoke(new Action<String>(FormMain.Instance.textBoxLog.AppendText), "Close\\n");
        
        public FormMain()
        
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;
        
        private void buttonOpen_Click(object sender, EventArgs e)
        
            // 注入并多开
            String dllPath = System.IO.Directory.GetCurrentDirectory() + "\\\\WeChatHelper.dll";
            InjectWeChat("WeChatHelper.dll");
        
        private void buttonSend_Click(object sender, EventArgs e)
        
            // 构造json消息,可使用相关Json库
            String strMsg = "\\"type\\": 11036, \\"data\\":\\"to_wxid\\":\\"" +
                textBoxWxid.Text + "\\", \\"content\\":\\"" + textBoxMsg.Text + "\\"";
            SendWeChatData(WxClientId, strMsg);
        
        private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
        
            // 释放Socket并卸载注入的dll
            DestroyWeChat();
        
        private void FormMain_Load(object sender, EventArgs e)
        
            Instance = this;
            m_AcceptCallbackFunc = WxAcceptCallback;
            m_RecvCallbackFunc = WxRecvCallback;
            m_CloseCallbackFunc = WxCloseCallback;
            // 初始化Callback
            InitWeChatSocket(m_AcceptCallbackFunc, m_RecvCallbackFunc, m_CloseCallbackFunc);
        
        private void button1_Click(object sender, EventArgs e)
        
            // 构造json消息,可使用相关Json库
            String strMsg = "\\"type\\": 11030";
            SendWeChatData(WxClientId, strMsg);
        
    

https://www.showdoc.cc/505015445242065?page_id=2980813708300422

以上是关于个人微信Hook-C#Demo开发SDK的主要内容,如果未能解决你的问题,请参考以下文章

微信JS SDK Demo 官方案例[转]

微信开发SDK使用教程--手机微信个人号新增好友通知服务端

微信接口文档sdk

微信开发协议

微信开发SDK使用教程--手机微信个人号移除好友通知服务端

微信个人api(转)