制作QQ消息炸弹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 //没有点击了循环发送复选框。 begin edit1.Text:=combobox1.Text; edit1.SelectAll; edit1.CopyToClipboard; sendmessage(hmemo1,WM_PASTE,0,0); sendmessage(hbutton,BM_CLICK,0,0); end; end; 附上简要说明:由于本人所知有限,不太会用剪切板函数对将已知字串拷贝到剪切板的方法还不知道。所以只能借道于控件上。因为所有文本类控件都有一个方法即——edit1.CopyToClipboard,所以只能先将Edit1变为不可见控件。每次先将要发送的内容传给Edit1,而后在将Edit1的内容CopyToClipboard。哈!这只是一个取巧的法子,大家要是知道有什么更好的方法还望告知在下,呵! 后记: 以上代码是针对QQ2003版本。虽然网上有如:飘叶千夫指的好工具。不过作为一个小小菜鸟。但又喜欢编程的人来说。自己DIY(do it youtself)一个也是很爽的一件事吧!我自己也参照飘叶千夫指做了一个,感觉具备了它的使用功能吧!还不错。其实也没有太多技术性的东西,只是运用了几个API函数而已。只希望对刚刚学Delphi的朋友有所帮助,当然高手是用不着的了。 注明:QQ2004有些改动.为了方便我把新改的代码帖上来: procedure TForm1.Timer1Timer(Sender: TObject); //QQ2004就是多了下面这句,Memo上又多了一层窗口 更多相关文章
|
推荐文章
精彩文章
·类和对象
|