qq发信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Threading;
namespace qq
{
    public partial class QQSendMessage : Form
    {
        [DllImport("user32.dll")]
        static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll")]
        static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
        [DllImport("user32.dll", SetLastError = true)]
        public static extern IntPtr FindWindowEx(IntPtr parentHandle, int childAfter, string className, int windowTitle);
        [DllImport("user32.dll", EntryPoint = "SendMessage")]
        static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, string lParam);
        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr GetModuleHandle(string lpModuleName);

        IntPtr hwndQQ;
        IntPtr hwnd1;
        IntPtr hwnd2;
        IntPtr hwnd3;
        IntPtr hwnd4;
        private DateTime qqTimer = DateTime.Now;
        private DateTime qqqTimer = DateTime.Now;

        public QQSendMessage()
        {
            InitializeComponent();
        }

        private void MySendMessage()
        {
            string machinename = System.Environment.MachineName;//获得计算机名
            Process[] processlist = Process.GetProcesses(machinename);//得到所有进程
            foreach (Process p in processlist)//列举每个进程
            {
                if (p.MainWindowTitle != "")//标题是否为空,不为空执行下面代码
                {
                    MessageBox.Show(p.MainWindowTitle);
                    if (p.MainWindowTitle.ToString().Substring(0, 1) == "与" || p.MainWindowTitle.ToString().Substring(0, 1) == "临")//查看窗口标题第一个字是否是“与”。如果是的,说明是QQ窗口
                    {
                        hwndQQ = FindWindow("#32770", p.MainWindowTitle.ToString());
                        hwnd1 = GetDlgItem(hwndQQ, 0);
                        hwnd2 = GetDlgItem(hwnd1, 0);
                        hwnd3 = GetDlgItem(hwnd2, 894);
                        SendMessage(hwnd3, 194, 0, this.txtInput.Text);//向QQ输入框粘贴字符,this.textBox1.Text是要发送的文字信息
                        hwnd4 = GetDlgItem(hwnd1, 1);
                        SendMessage(hwnd4, 245, 0, Convert.ToString(0));
                    }
                }
            }
        }

        /// <summary>
        /// 单个用户发送消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSend_Click(object sender, EventArgs e)
        {
            string sQQNumber = "";

            if (listQQs.SelectedItem == null)
            {
                return;
            }

            sQQNumber = listQQs.SelectedItem.ToString();

            string s = "tencent://message/?uin=" + sQQNumber + "&Site=im.qq.com&Menu=yes";//是对方的QQ号
            Process.Start(s);
            Thread.Sleep(300);
            this.MySendMessage();
            Thread.Sleep(100);
            btnClose_Click(null, null);
        }

        /// <summary>
        /// 循环发送消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSSend_Click(object sender, EventArgs e)
        {
            if (txtInput.Text.Length == 0)
            {
                string strMessage = "请输入要发送的消息";
                MessageBox.Show(strMessage, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            i = 0;

            this.timer1.Interval = System.Convert.ToInt16(txtMs.Text);
            this.timer1.Enabled = true;

        }

        /// <summary>
        /// 停止发送消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSStop_Click(object sender, EventArgs e)
        {
            this.timer1.Enabled = false;
        }

        /// <summary>
        /// 计时器开始发送消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        ///
        private int i = 0;
        private void Qtimer_Tick(object sender, EventArgs e)
        {

            string sQQNumber = "";
            if (i >= listQQs.Items.Count)
            {
                //MessageBox.Show(i.ToString());
                timer1.Enabled = false;
                btnClose_Click(null, null);
                return;
            }
            listQQs.SelectedIndex = i;
            sQQNumber = listQQs.Items[i].ToString();
            i++;

            string s = "tencent://message/?uin=" + sQQNumber + "&Site=im.qq.com&Menu=yes";//是对方的QQ号
            Process.Start(s);
            Thread.Sleep(300);
            this.MySendMessage();
            Thread.Sleep(100);
            btnClose_Click(null, null);


            if (DateTime.Now > qqTimer)
            {
                this.MySendMessage();
                //qqTimer.AddMilliseconds(Convert.ToInt32(this.txtMs.Text.Trim()));
                qqTimer = DateTime.Now.AddMilliseconds(Convert.ToInt32(this.txtMs.Text.Trim()));
            }
        }


        /// <summary>
        /// 向群组发消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>


        private void btnClose_Click(object sender, EventArgs e)
        {
            string machinename = System.Environment.MachineName;//获得计算机名
            Process[] processlist = Process.GetProcesses(machinename);//得到所有进程
            foreach (Process p in processlist)//列举每个进程
            {
                if (p.MainWindowTitle != "")//标题是否为空,不为空执行下面代码
                {
                    if (p.MainWindowTitle.ToString().Substring(0, 1) == "与")//查看窗口标题第一个字是否是“与”。如果是的,说明是QQ窗口
                    {
                        p.CloseMainWindow();
                    }
                }
            }
        }

        private void QQSendMessage_Load(object sender, EventArgs e)
        {
            txtInput.Text = "一卡通水电暖  www.duanliqing.kudo.cn";
            this.Text = this.Text + "  Group = "; //+ butQQin.Tag
        }

        //private void butQQin_Click(object sender, EventArgs e)
        //{
        //    MyAddrList.数据访问层.DBPersonal objData = new MyAddrList.数据访问层.DBPersonal();
        //    objData.GetQQs(butQQin.Tag.ToString(), listQQs);
        //}

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值