基础信息类

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

好友操作

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

群操作类

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

发送信息

发送名片
发链接
发图片
发文件
发视频
发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. forward(转发)和redirect(重定向)的区别

    在学习Servlet和JSP时,经常会使用到forward和redirect,我们先来看这两者在Servlet中的调用方式: 1.forward request.getRequestDispatche ...

  2. HelloDjango 第 09 篇:让博客支持 Markdown 语法和代码高亮

    作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 为了让博客文章具有良好的排版,显示更加丰富的格式,我们使用 Markdown 语法来书 ...

  3. java线程池,工作窃取算法

    前言 在上一篇<java线程池,阿里为什么不允许使用Executors?>中我们谈及了线程池,同时又发现一个现象,当最大线程数还没有满的时候耗时的任务全部堆积给了单个线程, 代码如下: T ...

  4. word编辑visio文件

    Word文档中插入visio文件并编辑: (1)插入->对象->对象->选择“visio文件”,此种方式可插入visio文件的全部. (2)直接打开visio文件->ctrl+ ...

  5. maven项目编译通过,测试用例卡住,断点也用不了

    maven项目编译通过,测试用例卡住,断点也用不了.如下图 maven的tomcat插件可以运行没报错,但是网页访问一直转圈 原因: 最后发现是typeAliasesPackage这里设置了别名,所以 ...

  6. 从0开始学Git——Git的协同操作

    环境: test_git 目录下有个my-project 版本库 所有命令都在test_git目录下执行 本地协同操作 从远端仓库检出代码,或者克隆一个已有的版本库 拷贝一个已有的仓库 #格式: gi ...

  7. centos7不能连接外网

    1.  首先保证虚拟机是NAT模式 2.  打开cmd窗口,输入ipconfig,查看vmnet8的ipv4地址是多少,DNS也需要记下,后面会用到 注意:vmnet8的ip要与虚拟机的网关IP在同一 ...

  8. Vue 关于多个父子组件嵌套传值

    prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来.这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解. props: { selectMember: { ...

  9. JDK中的Proxy技术实现AOP功能

    1.需求,用户在执行某个业务方法时我们需要对这个用户进行判断是否具有权限(或者说用户是否登录了)? 例如修改用户信息,我们在update()方法前判断当前用户user是否为null(表示没有权限或者没 ...

  10. 洛谷 P1514 【引水入城】

    题库 :洛谷 题号 :1514 题目 :引水入城 link :https://www.luogu.org/problemnew/show/P1514 思路 :搜索从第一排开始能覆盖最后一排的区间L ~ ...