示例#1
0
 /// <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);
 }
示例#2
0
        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);
        }
示例#3
0
 /// <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);
 }
示例#4
0
 /// <summary>
 /// 心跳计时器回调
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private static void HeartbeatTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
 {
     SenderApi.QQHeartbeat(HeartbeatHwnd);
 }
示例#5
0
 public void heartbeat()
 {
     SenderApi.QQHeartbeat(mHwnd);
 }