基础信息类

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

好友操作

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

群操作类

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

发送信息

发送名片
发链接
发图片
发文件
发视频
发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的更多相关文章

  1. 个人微信号二次开发SDK协议,个人微信号二次开发api接口

    通过这个API接口可以做什么? 通过我们提供的API接口您可以开发: 工作手机(如:X创,X码,XX管家等) 微信群讲课软件(如:讲课X师,一起X堂等) 微信社群管理软件(如:小X管家,微X助手等) ...

  2. 分享 Java微信开发SDK

    分享 Java微信开发SDK •发布于 4周前  •作者 朋也  •432 次浏览  •最后一次编辑是 2周前  •来自 分享 给大家分享两个java开发微信公众号的sdk jfinal-weixin ...

  3. VopSdk一个高逼格微信公众号开发SDK(源码下载)

    看之前回复很多说明大家很有热情&文章被误删掉了,不想让有的朋友错失这个高逼格的东西,现在重新发布,这次就直接放出源码,文章最末下载地址. 看之前回复很多说明大家很有热情&文章被误删掉了 ...

  4. VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启)

    VopSdk一个高逼格微信公众号开发SDK(源码下载) VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启) 针对第一版,我们搞了第二版本,老规矩先定个目标. 一 我们的目标 a.移 ...

  5. 微信开发SDK支持小程序 ,Jeewx-Api 1.3.1 版本发布

    JEEWX-API 是一款JAVA版的微信开发SDK,支持微信公众号.小程序.微信企业号.支付宝生活号SDK和微博SDK.你可以基于她 快速的傻瓜化的进行微信开发.支付窗开发和微博开发. 基于jeew ...

  6. 实战:微信小程序支付开发具体流程

    来源:授权地址作者:会编码的熊 该文章纪录了我在开发小程序支付过程中的具体流程 1. 申请微信支付 小程序认证后进入微信支付申请小程序的微信支付 填写企业信息对公账户并上传凭证后,微信支付会打一笔随机 ...

  7. 微信开发系列——微信订阅号前端开发利器:WeUI

    前言:年前的两个星期,学习了下微信公众号的开发.后端基本能够基于盛派的第三方sdk能搞定大部分事宜.剩下的就是前端了,关于手机端的浏览器的兼容性,一直是博主的一块心病,因为博主一直专注于bootstr ...

  8. 微控工具xp模块-开发版[微信(wechat)二次开发模块]

    http://repo.xposed.info/module/com.easy.wtool   微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方 ...

  9. Android开发SDK接入机智云,智能家居实现APP远程控制多设备

    代码地址如下:http://www.demodashi.com/demo/12847.html 一.前言. 此框架只用了一周星期做了出来,因为对机智云的框架比较熟悉了 !期间SDK初始化出了问题,去咨 ...

随机推荐

  1. ggplot2: how to check the color and coreponding value pairs

    The way to check the color and coreponding value pairs in ggplot2 To see what colors are used to mak ...

  2. Linux面试题总结

    1.简述Apache两种工作模式,以及它们之间的区别.答:(1)prefork MPM使用多个子进程,每个子进程只有一个线程来处理一个http请求,直到这个TCP连接被释放.root主进程在最初建立s ...

  3. 天眼查sign 算法破解

    天眼查sign 算法破解 最近真的在sign算法破解上一去不复返 前几天看过了企查查的sign破解 今天再看看天眼查的sign算法破解,说的好(zhuang)点(bi)就是破解,不好的就是这是很简单的 ...

  4. java杨辉三角

    public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println( ...

  5. 手写迷你SpringMVC框架

    前言 学习如何使用Spring,SpringMVC是很快的,但是在往后使用的过程中难免会想探究一下框架背后的原理是什么,本文将通过讲解如何手写一个简单版的springMVC框架,直接从代码上看框架中请 ...

  6. HDU 6040

    题意略. 思路:题目就是在询问你m次,第k小是哪个数.首先我们可以想到直接排序后,即可O(1)来查找询问.但是题目中n的范围给的是1e7, 无法承受nlogn的复杂度.从而想到另外一种求静态第k小的方 ...

  7. Leetcode之深度优先搜索(DFS)专题-329. 矩阵中的最长递增路径(Longest Increasing Path in a Matrix)

    Leetcode之深度优先搜索(DFS)专题-329. 矩阵中的最长递增路径(Longest Increasing Path in a Matrix) 深度优先搜索的解题详细介绍,点击 给定一个整数矩 ...

  8. FineReport - 项目连接Oracle数据库

    FineReport项目连接Oracle数据库 1:打开模板设计器,单击[服务器],选择[定义数据连接]: 2:单击[+],选择[JDBC]; 3:数据库选择[Oracle],驱动器选择[oracle ...

  9. Oracle - SQL语句实现数据库快速检索

    SQL语句实现数据库快速检索 有时候在数据库Debug过程中,需要快速查找某个关键字. 1:使用PLSQL Dev自带的查找数据库对象,进行对象查找 缺点:查找慢.耗时. 2:使用SQL语句对数据库对 ...

  10. Kubernetes 入门必备云原生发展简史

    作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 "未来的软件一定是生长于云上的"这是云原生理念的最核心假设.而所谓"云原生",实际上就是在定义一条能 ...