目录
基础信息类
好友操作
群操作类
发送信息
接收信息
Demo 源码
基础信息类
获取个人信息
从网络获取群成员信息
从网络获取个人信息
获取公众号信息
获取群组信息
获取群成员信息
获取单个好友信息
好友操作
修改好友备注
添加好友
删除好友
同意加好友请求
同意好友的进群邀请
接收好友的转账
群操作类
删除并退出
保存到 / 移出通讯录
是否显示群成员呢称
修改我在本群的呢称
修改公告
修改群名称
踢出群成员
邀请好友进群
创建群聊
发送信息
发送名片
发链接
发图片
发文件
发视频
发 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.cnblogs.com/wechat-hook/p/11563986.html