old_flsystem/类库/Chat.Framework/WXSdk/UIForm/HOOKForm.cs

130 lines
4.7 KiB
C#
Raw Permalink Normal View History

2022-09-20 03:10:29 +00:00
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;
}
}
}
}