130 lines
4.7 KiB
C#
130 lines
4.7 KiB
C#
using Chat.Framework.WXSdk.Implement;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Chat.Framework.WXSdk.UIForm
|
|
{
|
|
|
|
public partial class HOOKForm : Form
|
|
{
|
|
public HOOKForm(WXClientImpl_HOOK hook)
|
|
{
|
|
InitializeComponent();
|
|
this.hook = hook;
|
|
this.Text = "MyWeChat"+hook.Process.Id;
|
|
}
|
|
WXClientImpl_HOOK hook;
|
|
public struct COPYDATASTRUCT
|
|
{
|
|
public IntPtr dwData;
|
|
public int cbData;
|
|
[MarshalAs(UnmanagedType.LPStr),]
|
|
public string lpData;
|
|
}
|
|
|
|
public enum MsgType:int
|
|
{
|
|
获得二维码 = 5,
|
|
登录窗口句柄改变 = 10001,
|
|
聊天窗口句柄改变 = 10002,
|
|
机器人信息刷新 = 10003,
|
|
好友列表数据刷新 = 10004,
|
|
错误信息 = 10005,
|
|
群列表数据刷新 = 10006,
|
|
选中了微信窗口 = 10007,
|
|
查询申请人列表 = 10008,
|
|
收到私聊消息 = 10011,
|
|
收到群聊消息 = 10012,
|
|
发送了一条消息 = 10014,
|
|
未知消息
|
|
}
|
|
|
|
/// 消息主要接受程序
|
|
/// </summary>
|
|
/// <param name="m"></param>
|
|
protected override void DefWndProc(ref Message m)
|
|
{
|
|
switch (m.Msg)
|
|
{
|
|
case 74: //74代表WM_COPYDATA
|
|
//
|
|
//消息号 (int)m.WParam
|
|
var msg = (int)m.WParam;
|
|
MsgType f = (MsgType)(msg);
|
|
COPYDATASTRUCT cds = new COPYDATASTRUCT();
|
|
Type t = cds.GetType();
|
|
try
|
|
{
|
|
cds = (COPYDATASTRUCT)m.GetLParam(t);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
Console.WriteLine($"{f}:{cds.lpData}");
|
|
switch (f)
|
|
{
|
|
case MsgType.获得二维码:
|
|
{
|
|
var temp = cds.lpData.Split(new string[] { "||"}, StringSplitOptions.None);
|
|
if (temp.Length > 1 && File.Exists(temp[1]))
|
|
{
|
|
File.Delete(temp[1]);
|
|
}
|
|
break;
|
|
}
|
|
case MsgType.登录窗口句柄改变:
|
|
case MsgType.聊天窗口句柄改变:
|
|
hook.WxHandel = int.Parse(cds.lpData);
|
|
break;
|
|
case MsgType.机器人信息刷新:
|
|
{
|
|
var temp = cds.lpData.Split(new string[] { "||"}, StringSplitOptions.None);
|
|
//机器人信息刷新:省钱管家-喵喵||sqgj121||wxid_zia3qen528cf22||http://wx.qlogo.cn/mmhead/ver_1/ibb1ZKLYa6cr5ibEademibNN1AjAu3JT9K3z3uERYXGx3VdWicsThtbBJB7mibRS3Ihk7GqFKXl1KfkNicXjlicmdqAIky2zpsmt7U143hicaxzR6TY/0
|
|
hook.User = new WeixinBaseUser(temp[2],temp[0]);
|
|
|
|
}
|
|
break;
|
|
case MsgType.好友列表数据刷新:
|
|
{
|
|
|
|
}
|
|
break;
|
|
case MsgType.错误信息:
|
|
break;
|
|
case MsgType.群列表数据刷新:
|
|
break;
|
|
case MsgType.选中了微信窗口:
|
|
break;
|
|
case MsgType.查询申请人列表:
|
|
break;
|
|
case MsgType.收到私聊消息:
|
|
break;
|
|
case MsgType.收到群聊消息:
|
|
break;
|
|
case MsgType.发送了一条消息:
|
|
break;
|
|
case MsgType.未知消息:
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
//消息内容 cds.lpData
|
|
break;
|
|
default:
|
|
base.DefWndProc(ref m);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|