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);
var hbutton,hbutton1,hmemo,hmemo1,hparent1:hwnd;
begin
repeat
hparent:=findwindowex(0,hparent,'#32770',nil);
//qq2004就是多了下面这句,memo上又多了一层窗口
hparent1:=findwindowex(hparent,0,'#32770',nil);
until hparent1<>0;
hbutton:=findwindowex(hparent1,0,nil,'发送(&s)');
hbutton1:=findwindowex(hparent1,0,nil,'聊天模式(&t)');
if hbutton1<>0 then
sendmessage(hbutton1,bm_click,0,0);
hmemo1:=getdlgitem(hparent1,$00000000);
hmemo:=getwindow(hmemo1,gw_child);
if hmemo<>0 then
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(hmemo,wm_settext,0,0);
sendmessage(hmemo,wm_paste,0,0);
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(hmemo,wm_settext,0,0);
sendmessage(hmemo,wm_paste,0,0);
sendmessage(hbutton,bm_click,0,0);
end;
end;
end;
有需要的朋友请到我的网站去下载(位于我的作品里):