#!perl
# Demonstrate the programming using OLE with Perl
# earn money at eetop.cn/bbs
# By Alan
# 2010-05-15
use
warnings
;
use
strict
;
use
Data::
Dumper
;
use
Win32::
OLE
qw( EVENTS )
;
my
$time
;
$|
=
1
;
open
LOG
,
">>guanshui.txt"
or
die
$!
;
my
$j
=
0
;
my
$url
=
'http://www.eetop.cn/bbs/thread-252321-1-2.html'
;
Win32::
OLE
->
Initialize
(
Win32::OLE::
COINIT_OLEINITIALIZE
);
my
$ie
=
Win32::
OLE
->
new
(
'InternetExplorer.Application'
)
or
die
"error starting IE"
;
$ie
->
{
visible
}
=
0
;
Win32::
OLE
->
WithEvents
(
$ie
,
\&
Event
,
'DWebBrowserEvents2'
);
Win32::
OLE
->
Option
(
Warn
=>
3
);
for
(
0
..
1000
)
{
$j
++
;
print
"Nagivate to $url\n"
;
$ie
->
navigate
(
$url
);
Win32::
OLE
->
MessageLoop
();
sleep
65
;
}
$ie
->
Quit
()
if
(
defined
$ie
);
sub
Event
{
my
(
$obj
,
$Event
,
@Args
)
=
@_
;
my
$IEObject
=
shift
@Args
;
#print "$obj $Event @Args/n";
if
(
$Event
eq
'DocumentComplete'
)
{
my
$Doc
=
$IEObject
->
{
Document
};
if
(
$Doc
->
{
URL
}
=~
"$url"
)
{
my
$elem
=
$Doc
->
getElementById
(
'fastpostmessage'
);
my
$form
=
$Doc
->
getElementById
(
'fastpostform'
);
$time
=
localtime
();
$elem
->
{
value
}
=
'我是来灌水挣钱的...,, 拿分走人...By uestc_apache @ '
.
$time
;
$form
->
submit
();
print
" $j 灌水成功 @ $time\n"
;
print
LOG
"灌水成功 $j \n"
;
Win32::
OLE
->
QuitMessageLoop
();
}
}
Win32::
OLE
->
QuitMessageLoop
()
if
$Event
eq
"OnQuit"
;
}