这个是怎么实现的?(200分)

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

wdl

Unregistered / Unconfirmed
GUEST, unregistred user!
看到一个叫梦聊的软件,它可以把磁盘上的一个文本文件的逐行内容读出后发
送到聊天室的发言栏内,自动一行行发出,对于事先写好的大段话很方便。
例如要在聊天室给某个mm送一朵玫瑰花:
_ / |
| / //_/
/_/| / __
//_/__/ .--='/~/
___,__/__,_____,______)/ /{~}}}
,-----,--/--,-----,---,/'-' {{~}}
__//_ '--=./}/
/_/ |//
//
如果用copy,paste的方法太慢了,没等你发送完那,你的玫瑰花,早就被
别人的口水分割的四分五裂了(口水也这么厉害,呵呵),用这个软件就不用担心
了,省时省力,发送速度快。
当然也可以用于刷屏捣乱了。(这个软件可以在biebie.163.net下载)
专门用于填写登记表格的软件也是这个原理吧。
我想知道如何能把程序读出的文本内容自动送到聊天室的发言栏里然后自动输入
一个回车,或者别的指令发送当前的内容。

在咱无所不能的delphi中如何实现?

拜托各位指点一下。

我上网有点困难,所以给分会慢一点,请原谅我呀。
 
这个问题应该不是很难,不过我现在没时间做。
 
获得句柄,向其发WM_CHAR或WM_KEYDOWN消息应该可以了.
 
能详细一点吗?
拜托了,我api懂的不多
 
它在读入文本时,把文本的换行符显式地表示成内码,好象是#D#A什么的,这是我在做用
程序保存网页时发现的,它在读入时只是把你的多行的字符串当作一个字符串流来处理了,
注意:换行符不等于回车.
 
阿朱的方法可行,用换行而不用回车符,做为一个字符串发送
 
各位你们说的不是我想要的
我看离线数据库的时候发现cakk有一段代码是就是这个问题
问题的标题好象是'帮我测试代码'我记不太清了()
谢谢各位的回答  我还是感谢你们的帮助
 
嘿,U,cAkk的那个是SendKey ,不过和你的要求不一样!

比如说聊天室规定最短时间3秒,那么3秒内别人的口水一样能淹没你.
 
http://wjiachun.edu.chinaren.com/down/autospeak.exe
 
我记得以前有个贴子可以向指定窗口的焦点上发键盘信息的,你查一下吧
 
wjiachun:
我们是同届呀!
去了你的主页了,真羡慕你
你是怎么做的?
请给我提示(比如用那个函数)
谢谢你了
 
在你的单元里 uses autospeak;即可。 :-)

unit autospeak; //rewrite from sendkey by wjiachun//
interface
uses windows,messages;
procedure SendKeys(sSend:string);

implementation
procedure SendKeys(sSend:string);
var
i:integer;
focushld,windowhld:hwnd;
threadld:dword;
ch: byte;
begin
windowhld:=GetForegroundWindow;
threadld:=GetWindowThreadProcessId(Windowhld,nil);
AttachThreadInput(GetCurrentThreadId,threadld,true);
Focushld:=getfocus;
AttachThreadInput(GetCurrentThreadId,threadld,false);
if focushld = 0 then Exit;
i := 1;
while i <= Length(sSend) do
begin
ch := byte(sSend); //send string//
if Windows.IsDBCSLeadByte(ch) then
begin
Inc(i);
SendMessage(focushld, WM_IME_CHAR, MakeWord(byte(sSend), ch), 0);
end
else
SendMessage(focushld, WM_IME_CHAR, word(ch), 0);
Inc(i);
end;
postmessage(focushld,WM_keydown,13,0); //enter//
end;
end.
 
喔 ~~??~~~

这个功能也有用啊,好,我收录了

将该功能加入我的 IRC 中 ....
 
但是几乎所有的 IRC Server 都有刷屏保护啊,怎么解决这个问题呢 ??

发送的字串后面要跟 "/r/n" (C语言)

原串为 "PRIVMSG #Channel :发送本段文字/r/n"
 
后退
顶部