怎么样才能够把程序内部的文本复制到程序外? ( 积分: 20 )

  • 主题发起人 主题发起人 wjpttt
  • 开始时间 开始时间
W

wjpttt

Unregistered / Unconfirmed
GUEST, unregistred user!
我做的是Listbox,原来有几行文本,也可以从别的文本文档中读取,我是想点击程序外部的一个文本文件的编辑区,就可以自己粘贴和换行,请问要怎么做才可以?
 
我做的是Listbox,原来有几行文本,也可以从别的文本文档中读取,我是想点击程序外部的一个文本文件的编辑区,就可以自己粘贴和换行,请问要怎么做才可以?
 
思路就是取得句柄发消息。
 
直接发送粘帖消息
 
我想要的是代码 ,不止止是理论,哪怕有个类似的例子也可以啊
我也想过要用发送粘贴命令,可是,用什么样的代码才能办到呢?
在代码区打Ctrl+V当然是不行的,各位大哥,请不要吝惜手指,好吗?
 
这是一个QQ尾巴的部分代码,在这里借花献佛。
//------------------发送消息的过程-------------------//
Procedure SendText;
var
mainhwnd:THandle;
//聊天主窗体句柄
texhwnd:THandle;
//输入框句柄
begin
mainhwnd:=0;
//查找当前的工作状态的窗体,#32770是窗口类
mainhwnd:=FindWindowEx(GetForegroundWindow,mainhwnd,'#32770',nil);
if mainhwnd<>0 then
begin
//查找输入框的句柄
texhwnd:=FindWindowEx(mainhwnd,0,'AfxWnd42',nil);
texhwnd:=FindWindowEx(texhwnd,0,'RICHEDIT',nil);
//如果输入框里没有消息就取消发送
if SendMessage(texhwnd,WM_GETTEXTLENGTH,0,0)<1 then
exit;
//取消输入框中文本的选中
SendMessage(texhwnd,EM_SetSel,-1,-1);
//向输入框中加入尾巴
SendMessage(texhwnd,EM_ReplaceSel,1,integer(pchar(' '+'QQ尾巴 by Sirius!')));
end;
end;
//----------------------------end.
 
还有一个
SetFocus(richedit的句柄);
//将焦点设置到QQ的richedit上
{ ---------- 粘贴 ---------- }
keybd_event(VK_CONTROL, 0, 0, 0);//在Richedit发送Ctrl + V,粘贴消息
keybd_event(Byte('V'), 0, 0, 0);
//注:你记得先把发送的内容复制起来
keybd_event(Byte('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

{ ---------- 发送 ---------- }
keybd_event($11, 0, 0, 0);
//然后发送Ctrl + Enter,把消息发送出去
keybd_event($0D, 0, 0, 0);
{回车}
keybd_event($0D, 0, KEYEVENTF_KEYUP, 0);
keybd_event($11, 0, KEYEVENTF_KEYUP, 0)
 
用发送键盘消息的办法就可以keybd_event
 
接受答案了.
 
后退
顶部