发布于2021-05-30 20:23 阅读(1547) 评论(0) 点赞(1) 收藏(5)
C#调用微信接口方法(通过wxDriver.dll)
先看 c# api.cs文件,里面定义了相关接口:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.ComponentModel;
- using System.Data;
- using System.Threading.Tasks;
- using System.Runtime.InteropServices;
- /*
- * 获取正试版接口 QQ 150311852
- * 电话微信 17756258757 联系时请说明来意
- * 接口详细说明:https://www.showdoc.com.cn/WeChatHelper?page_id=6401634409030983
- *
- */
- namespace Api
- {
- /// <summary>
- /// 定义回调委托
- /// </summary>
- /// <param name="intPtr">消息指针</param>
- /// <param name="dwSize">消息长度</param>
- public delegate void OnReceiveCallBack(IntPtr intPtr, int dwSize);
- public abstract class WxApi
- {
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 初始化
- * @Parame callback 回调函数
- * @return 返回结果是否成功
- */
- public static extern bool InitWxDriver(OnReceiveCallBack callback);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 打开或多开微信
- @return 返回多开端口
- */
- public static extern int OpenWechat();
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 获取登录二维码文件名
- * @Parame port 端口
- * @return 返回生成的二维码文件名路径
- */
- public static extern IntPtr GetQrCodeFileName(int port);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
-
- public static extern int GetWechatLoginWindowCount();
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 发送基本信息
- * @Parame port 端口
- * @Parame wxid 微信ID
- * @Parame content 微信ID
- * @Parame type 消息类型:
- * 1-文本类型
- * 2-文件类型
- * 3-图片类型
- * 4-GIF动画类型
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr SendBaseMessage(int port, byte[] wxid, byte[] content, int type);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 发送链接信息
- * @Parame port 端口
- * @Parame wxid 微信ID
- * @Parame url 链接地址
- * @Parame title 标题
- * @Parame des 说明
- * @Parame thumbUrl 缩略图
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr SendLinkMessage(int port, byte[] wxid, byte[] url, byte[] title, byte[] des, byte[] thumbUrl);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 发送原始XML信息 可以是小程序 链接 视频号 等
- * @Parame port 端口
- * @Parame wxid 微信ID
- * @Parame content xml消息内容
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr SendXmlMessage(int port, byte[] wxid, byte[] content);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 发送引用消息
- * @Parame port 端口
- * @Parame wxid 微信ID
- * @Parame content 消息内容
- * @Parame param 微信ID
- * @Parame type
- * 1 文本 , 3 图片XML ,47 动态表情XML , 49 文件 链接 小程序XML
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr SendReferMessage(int port, byte[] wxid, byte[] content, byte[] param, int type);
-
-
- //*****************************************************************************************************************
- //***********************************************好友相关操作*******************************************************
- //*****************************************************************************************************************
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 通过好友申请
- * @Parame port 端口
- * @Parame encryptusername XML中encryptusername值
- * @Parame ticket XML中ticket值
- * @Parame scene 添加类型 XML中scene值
- * 0 通过搜索微信号添加
- * 3 通过搜索微信号添加
- * 6 通过搜索微信号添加
- * 14 通过群聊添加
- * 15 通过搜索手机号添加
- * 17 通过名片分享添加
- * 30 通过扫一扫添加
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr VerifyFriend(int port, byte[] encryptusername, byte[] ticket, int scene);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 添加好友
- * @Parame port 端口
- * @Parame wxid 微信ID
- * @Parame content 附加内容
- * @Parame type 添加类型
- * 0 通过搜索微信号添加
- * 3 通过搜索微信号添加
- * 6 通过搜索微信号添加
- * 14 通过群聊添加
- * 15 通过搜索手机号添加
- * 17 通过名片分享添加
- * 30 通过扫一扫添加
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr AddFriend(int port, byte[] wxid, byte[] content, int type);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
-
- /*
- * @Name 添加群成员为好友
- * @Parame port 端口
- * @Parame wxid 群微信ID
- * @Parame memberId 群成员微信ID
- * @Parame content 附加内容
- * 添加类型 14 通过群聊添加
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr AddGroupFriend(int port, byte[] wxid, byte[] memberId, byte[] content);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 删除好友
- * @Parame port 端口
- * @Parame wxid 微信ID
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr DelFriend(int port, byte[] wxid);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
-
- /*
- * @Name 拉黑或取消拉黑好友
- * @Parame port 端口
- * @Parame wxid 微信ID
- * @Parame flag 1为拉黑 0为取消拉黑
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr BlackFriend(int port, byte[] wxid, int flag);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
-
- /*
- * @Name 关注公众号
- * @Parame port 端口
- * @Parame wxid 公众号ID
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr FollowOfficialAccount(int port, byte[] wxid);
- //*****************************************************************************************************************
- //***********************************************群相关操作*******************************************************
- //*****************************************************************************************************************
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 创建群聊
- * @Parame port 端口
- * @Parame wxids 微信ID,最少2个,用小写逗号(,)隔开
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr CreateChatRoom(int port, byte[] wxids);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
-
- /*
- * @Name 发送群公告
- * @Parame port 端口
- * @Parame wxid 微信群ID
- * @Parame content 公告内容
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr SetGroupAnnouncement(int port, byte[] wxid, byte[] content);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
-
- /*
- * @Name 修改群名称
- * @Parame port 端口
- * @Parame wxid 微信群ID
- * @Parame content 群名称
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr SetGroupName(int port, byte[] wxid, byte[] content);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
-
- /*
- * @Name 修改自己在群里的名称
- * @Parame port 端口
- * @Parame wxid 微信群ID
- * @Parame content 群名称
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr SetSelfGroupNick(int port, byte[] wxid, byte[] content);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 修改群名称
- * @Parame port 端口
- * @Parame wxid 微信群ID
- * @Parame memberId 群成员微信Id
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr DelGroupMember(int port, byte[] wxid, byte[] memberId);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 添加群成员
- * @Parame port 端口
- * @Parame wxid 微信群ID
- * @Parame memberId 群成员微信Id
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr AddGroupMember(int port, byte[] wxid, byte[] memberId);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 邀请群成员
- * @Parame port 端口
- * @Parame wxid 微信群ID
- * @Parame memberId 群成员微信Id
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr InviteGroupMember(int port, byte[] wxid, byte[] memberId);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 用微信内置浏览器打开网页
- * @Parame port 端口
- * @Parame url 网址
- * @return 返回操作结果指针 JSON格式
- */
- public static extern IntPtr OpenUrl(int port, byte[] url);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /// <summary>
- /// 获取JSon中数字成员值
- /// </summary>
- public static extern int JsonGetIntValue(string jsonDoc, string member);
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /// <summary>
- /// 获取JSon中字符成员值
- /// </summary>
- public static extern IntPtr JsonGetStringValue(string jsonDoc, string member);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 发送Json格式数据
- * @Parame port 端口
- * @Parame json json数据
- * @return 返回操作结果 JSON格式
- */
-
- public static extern IntPtr SendJsonData(int port, byte[] json);
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 通过二维码进群
- * @Parame port 端口
- * @Parame filename 二维码图片文件
- * @return 返回操作结果 JSON格式
- */
- public static extern IntPtr EnterGroupFromQrcode(int port, byte[] filename);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 获取图片二维码
- * @Parame filename 二维码图片文件
- * @return 返回操作结果 JSON格式
- */
- public static extern IntPtr GetImageQrcode(byte[] filename);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 通过链接获取a8key
- * @Parame port 端口
- * @Parame url 链接
- * @return 返回操作结果 JSON格式
- */
- public static extern IntPtr GetA8keyFromUrl(int port, byte[] url);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 通过二维码图片获取a8key
- * @Parame port 端口
- * @Parame filename 二维码图片文件
- * @return 返回操作结果 JSON格式
- */
- public static extern IntPtr GetA8keyFromImage(int port, char filename);
-
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 获取已注入登陆的微信
- */
- public static extern void GetLoginWechat();
-
- [DllImport("wxDriver.dll", CallingConvention = CallingConvention.Cdecl)]
- /*
- * @Name 退出微信
- * @Parame port 端口
- */
- public static extern void LoginOut(int port);
- }
- }
再看程序里面调用方法:
- 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;
- using Api;
- /*
- * 获取正试版接口 QQ 150311852
- * 电话微信 17756258757 联系时请说明来意
- * 接口详细说明:https://www.showdoc.com.cn/WeChatHelper?page_id=6401634409030983
- *
- */
- namespace TestDemo
- {
- public partial class MainForm : Form
- {
- //定义委托回调消息
- private static OnReceiveCallBack mOnReceiveCallBack;
- public static MainForm mMainForm = null;
- int port = 0;
- public MainForm()
- {
- InitializeComponent();
- }
-
-
- private void button1_Click(object sender, EventArgs e)
- {
- //打开或多开微信
- Api.WxApi.OpenWechat();
- }
-
- /// <summary>
- ///回调函数
- /// </summary>
- /// param name="intPtr">消息指针</param>
- /// <param name="dwSize">消息长度</param>
- static void WxReceiveCallBack(IntPtr intPtr, int dwSize)
- {
- byte[] data = new byte[dwSize];
- Marshal.Copy(intPtr, data, 0, (int)dwSize);
- string sData = System.Text.Encoding.UTF8.GetString(data);
- int api = Api.WxApi.JsonGetIntValue(sData, "api");
- //4 为登录推送过来的消息
- mMainForm.port = Api.WxApi.JsonGetIntValue(sData, "port");
-
- //显示回调的消息
- mMainForm.Invoke(new Action<String>(mMainForm.text_out.AppendText), sData + "\r\n");
- }
-
- private void MainForm_Load(object sender, EventArgs e)
- {
- mMainForm = this;
- //赋值回调
- mOnReceiveCallBack = WxReceiveCallBack;
- //初始化回调
- Api.WxApi.InitWxDriver(mOnReceiveCallBack);
-
- //启动前获取所有已登陆的微信
- Api.WxApi.GetLoginWechat();
- }
-
- private void btn_send_Click(object sender, EventArgs e)
- {
- if (port > 0)
- {
- //发送文本消息
- byte[] utf8 = Encoding.UTF8.GetBytes(txt_msg.Text);
- byte[] wxid = Encoding.UTF8.GetBytes("filehelper");
- IntPtr intptr = Api.WxApi.SendBaseMessage(port, wxid, utf8, 1);
- //显示返回消息
- string data= Marshal.PtrToStringAnsi(intptr);
- string json = System.Text.Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(data));
- text_out.AppendText(json + "\r\n");
- }
- }
- }
- }
下载地址:https://tshelper.lanzoui.com/iyrq8pi8asj
作者:jjjjjjjj
链接:http://www.phpheidong.com/blog/article/86844/4f6c5389ed61773fc700/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!