|
制作QQ消息炸弹(4) Var hmemo,hmemo1:HWND; hmemo=GetDlgItem(hparent,$00000000); //找到父类。 hmemo1=GetWindow(hmemo1,GW_CHILD); //得到父类下的第一个子窗口句柄(hmemo1即QQ输入文本的那个窗体的句柄^_^大功告成) 这里顺便说一下GetWindow()用法: GetWindow( Hwnd:Long, //源窗口句柄。 wCnd:Long //指定结果窗口与源窗口的关系。(GW_CHILD为得到源窗体下的第一个子窗口句柄) ) 更多的常数关系你们就去查看MSDN吧!这里就不必占用寒泉的空间了。哈! 到此,QQ对话框和QQ输入文本窗口的句柄我们都已经得到了,以下的步骤就是把你要写的话,贴进QQ输入文本窗口,点一下发送,就郁闷别人吧! 现在贴出我的一段代码以供大家参考: procedure TForm1.FormCreate(Sender: TObject); begin i:=0; //导入文件内容到combobox控件。 combobox1.Items.LoadFromFile(extractfilepath(application.ExeName)+'text.txt'); combobox1.Text:=combobox1.Items.Strings[0]; end; procedure TForm1.Timer1Timer(Sender: TObject); var hmemo1:HWND; //hmemo1为找到的QQ文本输入框句柄 begin if checkbox1.Checked then //点击了循环发送复选框。 begin if i>combobox1.Items.Count-1 then i:=0; edit1.Text:=combobox1.Items.Strings[i]; edit1.SelectAll; edit1.CopyToClipboard; //拷贝到剪切板 sendmessage(hmemo1,WM_PASTE,0,0); //对QQ输入文本窗体发送粘贴消息。 sendmessage(hbutton,BM_CLICK,0,0); //点击发送按钮 i:=i+1; end; if checkbox1.Checked=false then //没有点击了循环发送复选框。
|