特难,500分求编程模拟IE单击超链接!!! (200分)

  • 主题发起人 主题发起人 jshyh
  • 开始时间 开始时间
J

jshyh

Unregistered / Unconfirmed
GUEST, unregistred user!
500分求编程模拟IE单击超链接!!!如某网站有一超链接指向www.sohu.com,用程序定时模拟IE单击此超链接访问sohu。不是简单的ShellExecute(Handle, ’pen’, 'www.sohu.com', nil, nil, SW_SHOWNORMAL);,还要获得referer参数。
提供完整程序,分数可加到1000分或更多。
 
想作弊?方法很多,但是服务器会根据IP统计,不可行。
 
ShellExecute(Handle, ’open’,
'www.sohu.com', nil, nil, SW_SHOWNORMAL);
 
晕!看错了。
对不起!
愿意学习
 
不管那么多,我只对技术感兴趣。有谁可以帮帮我。
 
看你挺急,具体说说要求,可到QQ18131360讨论
 
若是编程实现简单的链接到某个网站很简单,在程序中循环,但别人会记录你的IP因此应该用ip代理,但你点击某个网页该网页会发送信息到该网页服务器的,如cookies 网页要求的get信息和post信息,在这种情况下,是没有通用的软件,在delphi 中nmhttp 可以实现访问网页和网页交互一些简单信息,但nmhttp是有一定缺陷的 发送时对post信息都编码了,不能正常使用,后来我用了ics控件把软件编出来了。但每个网页要求的信息时不同的,因此你还要一些软件截获你发送信息进行分析。
 
有两种方法:
1 通过得到IE的控件名,给它消息
Control1.Perform( WM_LBUTTONDOWN, Keys, MakeLong(yPos, xPos) ); // 鼠标按下
Control1.Perform( WM_LBUTTONUP, Keys, MakeLong(yPos, xPos) ); // 鼠标抬起
其中yPos,xPos每次通过鼠标指的位置得到
2 用网络软件抓它发送的请求,然后你只要在程序里不停的发关请求就可以了。你可以在网上查一个叫“CaptureIP”的例子,这个例子就可以抓请求,你试试
 
javascript不知能不能算编程
open.htm
<html>
<body>
<script language="javascript">
var a;
while ( true )
{
a = window.open("http://www.21cn.com");
a.close();
}
</script>
</body>
</html>
 
把分都给我,告诉我信箱,我给你传“按键精灵”。
 
分数多得散不了,提供可行方案加1000分。
 
ezero 的对呀

用ShellAPI,将以下语句放入计时器:

ShellExecute(handle,nil,pchar('HTTP://WWW.SoHu.COM'),nil,nil,sw_ShowNormal);

 
我要的是自动点击sohu中的某个超链接。
 
ShellExecute(Handle, ’open’,
'www.163.com', nil, nil, SW_SHOWNORMAL);
 
--“我要的是自动点击sohu中的某个超链接。 ”
这样模拟按键(鼠标)确实很难办到,而且即使成功了,在执行你这个程序时,你也不能
动键盘和鼠标了。
给你个“可行方案”:
在你的程序中使用Twebbrowser组件,将网页嵌入你的程序中,这样控制起来就方便了。
你要的功能也可以用webbrowser1.navagate('http://xxxxxxxxxx')实现,如果有问题
就给我发信,我的邮箱是ttxyy_yy@yahoo.com.cn
 
最好知道连接地址,否则你只能打开sohu页面,然后模拟鼠标移动并在屏幕上乱点一通。
 
ttxyy的思路是可行的
你从webbrowser里想想办法吧,编程应该简单些!
 
可获取网页的源代码,然后用正则表达式函数获取其所有连接.用程序一个一个的打开这些连接就OK了.
 
我这有一段例子程序,你看看就会了
{先加入一个label在其onmousemove事件中加入代码}
procedure tform1.label1.mousemove(sender: tobject;shift:tshiftstate:x,y:integer);
begin
label1.font.style:=[fsbold,fsunderline];
label1.font.color:=clyellow;
end;
{在form1的mousemove中加入下列代码}
procedure tform1.formmousemove(sender:tobject;shift:tshiftstate;x,y:integer);
begin
label1.font.style:=[fsbold];
label1.font.color:=clmaroon;
end;


procedure tform1.label1clict(sender:tobject);
begin
shellexecute(handle,nil,phar('mailto:test@21cn.com'),nil,nil,sw_shownormal);
end;
{最后再将鼠标的形状设为crhandpoint即可}
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部