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
}
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
}
相关文章推荐
- c#编写QQ群发器
- C#编写QQ接口软件--QQ协议篇
- 用C#编写农历控件的源码
- C#截图源码及示例(仿QQ截图)
- C#通过三层链接数据库编写QQ(一)
- 【源码】c#编写的安卓客户端与Windows服务器程序进行网络通信
- C#编写高性能网络服务器(源码)
- C#编写的<植物大战僵尸>作弊器源码【转】
- C#编写QQ接口软件——QQ协议篇
- C#读写内存原来也不差!(发布C#编写的《植物大战僵尸》作弊器源码)希望朋友们多来捧捧场!
- 用c#写的QQ,有源码
- [转]提供一个C#编写的基类源码(用于操作WINDOWNS系统的服务)
- C#编写QQ接口软件--QQ协议篇
- 用C#编写农历控件的源码
- C#实现QQ助手(登录QQ,发消息,查任意QQ资料)附源码下载
- C#编写QQ找茬外挂
- 即时通信系统中实现全局系统通知,并与Web后台集成【附C#开源即时通讯系统(支持广域网)——QQ高仿版IM最新源码】
- C#编写QQ接口软件--QQ协议篇
- [C#]QQ开放平台(QQ登录)_流程和源码示例[原创]
- C#实现QQ助手(登录QQ,发消息,查任意QQ资料)附源码下载