您的位置:首页 > 编程语言 > C#

c#编写QQ群发器源码

2011-11-01 22:08 453 查看
1、窗体引用两个timer控件,来控循环发送时间 3D{4vMm X

C'/M/|=Q#

yI.H4Dl<

KM}4^Qc

2、调试环境 vs2009.net eH%L?"J~:

KHecc/,,S

ESxC{ "

A?D"j7JD=L

using System; %}MA5 t]o

using System.Collections.Generic; O {6gNR,*

using System.ComponentModel; NQ!N"C3u

using System.Data; 'CX.qxF1;p

using System.Drawing; w$lfR ,

using System.Text; .aismc`=

using System.Windows.Forms; zz 'dg-F

using System.Runtime.InteropServices; hG~]~ )

using System.Diagnostics; \gp,Txueb

Qw<kX*fxrI

n `m_S

a(ux?V)E.

YR|(;B

namespace QQSendMessage O~#uQm

{ "zedbJ0

public partial class QQSendMessage : Form ,"N3k(g

{ sm2p$3v

[DllImport("user32.dll")] lbKv

static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
g<2lPH

[DllImport("user32.dll")] T$n>7X-r

static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem); Jcalf{W6

[DllImport("user32.dll", SetLastError = true)] jMf 7J

public static extern IntPtr FindWindowEx(IntPtr parentHandle, int childAfter, string className, int windowTitle);
eg$5z Z

[DllImport("user32.dll", EntryPoint = "SendMessage")] 'YZI>V*

static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, string lParam);
l:zU_J6

[DllImport("kernel32.dll", CharSet = CharSet.Auto)] wR Xn9

public static extern IntPtr GetModuleHandle(string lpModuleName);
%A)-m 69

4f4 i1i:

z-KrQx2

t$]&,ucW#

IntPtr hwndQQ; lFp!XZ!

IntPtr hwnd1; $6:XsrV\a

IntPtr hwnd2; ?%\mQmjas

IntPtr hwnd3; N,j>;x3xT

IntPtr hwnd4; <a8#0ojm

j+_S$T8w

js:C mnI

GXOFk7>

,U6*kvHS6

public QQSendMessage() 8w)e/*:j

{ OJM vn'y

InitializeComponent(); _:wZmZU}

} 9 '2=

"DVt3E

kx|me~I

mWNR(()v

private void MySendMessage() _ymJ~MK

{ f"Ost;7zg

string machinename = System.Environment.MachineName;//获得计算机名 ^4+r*YvcM

Process[] processlist = Process.GetProcesses(machinename);//得到所有进程
>HE,'

foreach (Process p in processlist)//列举每个进程 n4^*h4J7

{ M[A-1]'

if (p.MainWindowTitle != "")//标题是否为空,不为空执行下面代码 Oz :D.V 3~

{ gzor%)C

if (p.MainWindowTitle.ToString().Substring(0, 1) == "与")//查看窗口标题第一个字是否是“与”。如果是的,说明是QQ窗口
]x1p!TSU

{ %>i@F=O2<

hwndQQ = FindWindow("#32770", p.MainWindowTitle.ToString()); /E)9v$!

hwnd1 = GetDlgItem(hwndQQ, 0); u0xQ;BQ

hwnd2 = GetDlgItem(hwnd1, 0); xFOBF")

hwnd3 = GetDlgItem(hwnd2, 894); }xqXd%uz

SendMessage(hwnd3, 194, 0, this.txtInput.Text);//向QQ输入框粘贴字符,this.textBox1.Text是要发送的文字信息
o"RJ.w:dn

hwnd4 = GetDlgItem(hwnd1, 1); Y=9j2 ]t

SendMessage(hwnd4, 245, 0, Convert.ToString(0)); M^uU4My

} S9J5(lYv~N

} M2dmG<

} IK3qE!,&U

} @YCv

)6G " *

f4 Q( 1(C

va^0JfQ

/// wk@yTTnb

/// 单个用户发送消息  [@<G+j

/// ;,dkJ7M

/// v~}5u 5 $O

/// 9 Va40X1

private void btnSend_Click(object sender, EventArgs e) 8[M* x3

{ 8[~~gYl

MySendMessage();//发送信息,向单个用户发送。 ;b1wk^,Hw~

} S*g`d;8gV

sT`^ljp4

ik5|,#}m&

O :^'x*}

/// ) * TF"

/// 循环发送消息 Us-A+)r*!

/// 7~b!4x|Z

/// x2k*| =$

/// 94{)"w]

private void btnSSend_Click(object sender, EventArgs e) /.$L"u

{ ~+HoSXu@E

this.Qtimer.Enabled = true; OJ/SYZ.r

} >vujZw_0>

n3ZAF'

<MdGe1n

?z=\Ye5x

/// %>y;zqZIU

/// 停止发送消息 ~HmxEk9

/// l}}UFEA^

/// 7>n"}8i

///  c+2%rh1

private void btnSStop_Click(object sender, EventArgs e) XP?*= Z]

{ m^I,}1H4

this.Qtimer.Enabled = false; {QQl$ys/

} vM4<d>

{/}^D-

oT&m4I

+a$| Sc

/// 8Xn!Kpa

/// 计时器开始发送消息 7=k^M, a

/// E5UcZ7

/// 9y~"|t

/// R1%y]]*-P

private void Qtimer_Tick(object sender, EventArgs e) s".HEP~]=

{ 9%!dNnUk

this.MySendMessage(); z~Na-N

} !LIlt`ag9

r:9gf?(&

sN/+ 

`fS^ j-_M

&Lt@} 7$8

private void QunSendMessage()//针对群的消息发送过程 l\Xd.H" j,

{ *%A}x 

string machinename = System.Environment.MachineName; bQQVj?8jp

Process[] processlist = Process.GetProcesses(machinename); J?Iq9f

foreach (Process p in processlist) $YM_G=k

{ b{&FuvQg2

if (p.MainWindowTitle != "") n?QZFeI`

{ OJ,m1{9$}

if (p.MainWindowTitle.ToString().Substring(p.MainWindowTitle.Length - 1, 1) == "群")
r@$ w*%

{ L *Y|ey

hwndQQ = FindWindow("#32770", p.MainWindowTitle.ToString()); FvXqggfGv

hwnd1 = GetDlgItem(hwndQQ, 0); I>n g`

hwnd2 = GetDlgItem(hwnd1, 0); X")|Uw8Kl/

hwnd3 = GetDlgItem(hwnd2, 894); ]QrR1Rg

SendMessage(hwnd3, 194, 0, this.txtGInput.Text);//向QQ输入框粘贴字符 hbfq]v*X

hwnd4 = GetDlgItem(hwnd1, 1); |NMO__l@

SendMessage(hwnd4, 245, 0, Convert.ToString(0)); CL9yEy"V

} ja T$gAx

} nhH;?D3

} r88"#C6E'

} k<Sl1v K

X0uJNHO

>l5u54^3K

z2 hFn&

/// ' Q7Y-V

/// 向群组发消息 ..qd,9H

/// !Q %P %P<$

/// ]?<n#=eW

/// }iww:H-1

private void btnGXSend_Click(object sender, EventArgs e) Qn+:/ zA;

{ M$S]} 

this.QunSendMessage();//向群发送单条信息 4s.]M>Yb

} sC7/9</

?Rr2/W#F

$g\&5sstE

{"}V&X160o

/// Q!'qC*Gyfn

/// 循环向群组发送消息 eSy(~Y

/// C/@LZ OEL

/// ?S[Y:<R{:

/// lK(Fg

private void btnGSend_Click(object sender, EventArgs e) gS9>N/b|

{ ]k%PG-9

this.QGtimer.Enabled = true; M {a #

} j,-C{ K

`D W2spd

-4 Ux,9&

c:4P%({

/// lxb zHlX

/// 停止向群组发送消息 AR&:Q4r|

/// cDk V;$

/// ;sOsT?)7$

/// !DXNo(:r

private void btnGStop_Click(object sender, EventArgs e) ^ 4>k%d

{ yi6N-7

this.QGtimer.Enabled = false; 6[ga$nF?

} &X>7n~@0

 Lc2QXeo8

]7YNI S

4B[D/kIg

/// |(R5e

/// 计时器发送消息 _ -..~K.|

/// @cvP0A

/// 1T|$ BK@)

/// ]ya; v '

private void QGtimer_Tick(object sender, EventArgs e) DC4C$AyW r

{ 0BU=)Swku

this.QunSendMessage();//连续发送信息,多少秒发送一次,自己设定。 ,J =P,](

} `#s#it'y

MN8H;0g-

9q[;u[A8^

B|Wk?w.{r\

/// wTq{sW&

/// 利用tencent协议,打开临时对话框 47By`Jh71

/// PO-"M)M

/// _'0 @%P%

/// / 8ynvhF#

private void btnQQ_Click(object sender, EventArgs e) ^z;JVrW

{ )q~DTR^z-

string s = "tencent://message/?uin=" + this.txtQQ.Text + "&Site=im.qq.com&Menu=yes";//是对方的QQ号
vv0Q$ O->

Process.Start(s); b0<o

} F3U`ueP

qi[Z,&

GRqT-/n"

\fWW'

/// vXj<

/// 初始化窗体 IND]j72

/// < Bg8,;

/// ?*"srE,#JX

/// f2I6!_C!+

private void QQSendMessage_Load(object sender, EventArgs e) F _3:bX

{ ^]C&tG0 !

this.txtGms.Text = "1000"; 9SQ4cv*2

this.txtMs.Text = "1000"; a,t``'c;

} _6@hTe n`

WG71k8af

|R/.r_x,V?

B?rSjdY4

} BG&cQr

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: