在写一个QQ聊天室自动发广告的小程序
问题如下
因为QQ聊天室屏蔽了WM_settext等类似的sendmessage方法,所以不得不采用垃圾方法来实现将文本写到edit上去,用以下方法实现,但又出现问题,因为此方法要不停的让QQ聊天室edit得到焦点,所以当程序运行的时候,将无法做其他工作,问如何解决不需要让Edit得到焦点就可以将文本ctrlV进去?
程序如下procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit3.text:=listbox1.Items[random(form1.listbox1.Count-1)];//随机抽取广告词
Clipboard.AsText:=edit3.Text;//将edit3的内容交给剪贴板
SetForegroundWindow(HL);//让QQ的edit获得焦点、、HL是句柄
SendCtrlV;  //这是ctrl+v的方法,就是用这个方法,将文本复制进edit中
sendenter; //这个是enter方法,发送出去
end;sendmessage是不能用的,大家不用说了,就说说,如何能不获得焦点的情况下把文本复制进去?
分不够再加,谢谢

解决方案 »

  1.   

    SendCtrlV内部不也是调用SendMessage?
      

  2.   

    问题不行呀,,看起来QQ把sendmessage都给封掉了,不让用传递呀~
      

  3.   

    我的意思是SendCtrlV内部应该也是通过SendMessage实现的。为什么它就行呢?估计还是你的方法不对。
      

  4.   

    qq尾巴病毒不是一样的道理啊,你可以找找这个程序啊,有delphi版实现的了!
      

  5.   

    QQ尾巴是用sendmessage实现的,这只单单局限于QQ人对人聊天情况下,因为这个情况下richedit没有做sendmessage的限制
    而QQ聊天室就不一样了,做了限制,将如何去做?to: ilovevc(ilovevc)
    我还是没有听懂你的意思,,能写个实例出来看看吗?
      

  6.   

    另外,如果有不使用sendmessage,和Clipboard的发送文本到控件的方法也写出来,我另外开贴给分~
      

  7.   

    delphi版实现qq尾巴病毒的原理和这个不一样吧!