PHP код:
Opt("SendKeyDelay", 50);
Opt("WinTitleMatchMode", 2);
$count = 0;
While 1
$lastdate = "03/30/2007"; Это дата самой свежей котировки, подлежащей граблению (формат MM/DD/YYYY).
$count = $count + 1
$line = StringSplit(FileReadLine(@ScriptDir & "\datagrabber.task", $count), ",;"&@TAB);
If @error <> 0 Then Exit;
$symbol = $line[1];
$period = StringUpper($line[2]);
If $period == "D" Then
$firstdate = "02/01/2007"
Else
$firstdate = "02/01/2007"
EndIf
DirCreate(@ScriptDir & "\" & @YEAR & @MON & @MDAY);
$out = @ScriptDir & "\" & @YEAR & @MON & @MDAY & "\" & $symbol & "_" & $period & ".csv";
WinWaitActive("P018 Romank");
Sleep(2000);
Send(StringLower($symbol &","& $period &"{ENTER}"));
Sleep(300);
If StringInStr(WinGetText("P018 Romank"), "not found") Then
Sleep(5000);
ContinueLoop; Contract '' not found.
EndIf;
; начальная подготовка
MouseClick("", 1018, 709);
Sleep(5000);
MouseClick("right", 451, 709, 2);
MouseClick("", 413, 486);
; установка временной шкалы на последний день
MouseClick("right", 451, 709, 2);
MouseClick("", 413, 443);
WinWaitActive("Go To Date:");
$date = StringSplit($lastdate, "/")
Opt("MouseCoordMode", 0);
MouseClick("", 33, 38, 1, 5);
Send($date[1]);
MouseClick("", 52, 38, 1, 5);
Send($date[2]);
MouseClick("", 76, 38, 1, 5);
Send($date[3]);
MouseClick("", 163, 38, 1, 5);
Sleep(5000);
While DateRange($firstdate, $lastdate)
WinWaitActive("P018 Romank");
Sleep(1000);
Opt("MouseCoordMode", 1);
WinMenuSelectItem("","","P&rint","Tabular Display");
Sleep(1000);
Send("{TAB}{DOWN}");
For $i = 0 To 3
Send("+^{RIGHT}+{PGDN 8}^c{DOWN}^{LEFT}");
FileWriteLine($out, StringReplace(StringReplace(ClipGet(), @TAB, ","), " ", ""));
Next;
Send("+^{RIGHT}+^{LEFT}^c^{F4}");
$lastdate = StringStripWS(ClipGet(), 8);
MouseClickDrag("", 120, 520, 520, 520, 30);
WEnd;
WEnd;
Func DateRange($date1, $date2)
$date1 = StringSplit($date1, "/");
$date2 = StringSplit($date2, "/");
If $date1[3] > $date2[3] Then Return 0;
If $date1[3] < $date2[3] Then Return 1;
If $date1[1] > $date2[1] Then Return 0;
If $date1[1] < $date2[1] Then Return 1;
If $date1[3] > $date2[2] Then Return 0;
If $date1[2] < $date2[2] Then Return 1;
Return 0;
EndFunc;
Писал его не я, я и не умею, а тот кто писал не найдешь уже.