/// <summary> /// 核心发送方法 /// </summary> /// <param name="msg"></param> /// <param name="imgs"></param> public void mainThreadSendWithUser(string userName, Image userHeader, string msg, Image[] imgs, string longImgPath) { Clipboard.Clear(); if (userHeader != null) { Clipboard.SetImage(userHeader); SenderApi.QQPaste(mHwnd); } if (!string.IsNullOrEmpty(userName)) { Clipboard.SetText(userName); SenderApi.QQPasteln(mHwnd); Clipboard.Clear(); } Clipboard.SetText(msg); SenderApi.QQPasteln(mHwnd); foreach (Image img in imgs) { if (img != null) { Clipboard.SetImage(img); Thread.Sleep(2000); SenderApi.QQPasteln(mHwnd); } } Thread.Sleep(1000); SenderApi.QQSumbit(mHwnd); }
private static IntPtr HeartbeatHwnd; // 心跳消息窗口句柄 /// <summary> /// 工厂方法,创建sender时,必须明确需要发送到哪些窗口。工厂函数负责依据提供的窗口名查找当前系统的QQ窗口。 /// </summary> /// <param name="wndNameRegex">窗口名正则串</param> /// <param name="form">程序主窗口</param> /// <returns></returns> public static QQSender CreateSender(string wndNameRegex, Form form) { QQSender instance = null; SenderApi.StartQQFindHwnd(wndNameRegex); IntPtr hwnd = SenderApi.GetFindHwnd(); string wndName = SenderApi.GetFindWndName(); if (Win32Api.IsWindow(hwnd)) { instance = new QQSender(); instance.mHwnd = hwnd; instance.form = form; instance.mWndNameRegex = wndNameRegex; instance.mWndName = wndName; if (heartbeatTimer == null) { heartbeatTimer = new System.Timers.Timer(5 * 60 * 1000); heartbeatTimer.Elapsed += HeartbeatTimer_Elapsed; HeartbeatHwnd = hwnd; heartbeatTimer.Start(); } } return(instance); }
/// <summary> /// 核心发送方法 /// </summary> /// <param name="msg"></param> /// <param name="imgs"></param> public void mainThreadSend(string msg, Image[] imgs) { Clipboard.Clear(); Clipboard.SetText(msg); SenderApi.QQPasteln(mHwnd); if (imgs != null) { foreach (Image img in imgs) { if (img != null) { Clipboard.SetImage(img); Thread.Sleep(1000); SenderApi.QQPaste(mHwnd); } } } SenderApi.QQSumbit(mHwnd); }
/// <summary> /// 心跳计时器回调 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void HeartbeatTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { SenderApi.QQHeartbeat(HeartbeatHwnd); }
public void heartbeat() { SenderApi.QQHeartbeat(mHwnd); }