timsky

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Maza Faka Спасибо... щас проснусь и поковыряю то, что ты дал Цитата: А не проще ли загрузить файл используя функцию InetGet()? | Это как? Вот например, я слепил аплоадер файлов на rapidshare.com и хочу, чтобы он в фоне все это делал. Как при помощи InetGet это реализовать не представляю себе. Даже если на рапиде этот трюк как-то можно приладить - мне все равно это нужно для более сложной софтины, которая очень много действий делает при помощи _IE...(). Да и вообще неужели это никак по другому не обойти? Вот для примера мой аплоадер на рапиду: Код: #include <IE.au3> #include <Constants.au3> AutoItSetOption('TrayAutoPause', 0) AutoItSetOption("TrayOnEventMode", 1) AutoItSetOption('TrayIconDebug', 1) AutoItSetOption('WinTitleMatchMode', 2) TrayItemSetText($TRAY_ITEM_PAUSE, "Pause") TrayItemSetText($TRAY_ITEM_EXIT, "Exit") If $CmdLineRaw = '' Then Exit ;======= Wait for finish of running copy ========== While WinExists(@ScriptName) WinWaitClose(@ScriptName) Sleep(1000) WEnd AutoItWinSetTitle(@ScriptName) ;========= Reading CONFIG ======== $debug = IniRead(@ScriptDir & '\config.ini', 'Main', 'Debug', '') If $debug = '' Or $debug = 0 Then $debug = 0 Else $debug = 1 EndIf $tip = IniRead(@ScriptDir & '\config.ini', 'Main', 'Tip', '') If $tip = '' Or $tip = 0 Then $tip = 10000 Else $tip = $tip * 1000 EndIf ;============= MAIN =============== TraySetToolTip('Rapida Uploader') Global $rapida, $file $file = StringReplace($CmdLineRaw, '"', '') ;MsgBox(64, $CmdLineRaw, $file) _IELoadWaitTimeout(3600000) Submit() While 1 $body = _IEBodyReadText($rapida) Select Case StringInStr($body, 'to delete file') $link = StringRegExp($body, '.*(http://rapidshare.com/files/.*)\r\n.*', 1) $downLink = $link[0] $link = StringRegExp($body, '.*?killcode=(.*)\r\n.*', 1) $delLink = $downLink & '?killcode=' & $link[0] If @error Then MsgBox(16, 'WTF???', 'Can not get links!') ExitLoop EndIf $toFile = $downLink & @CRLF & $delLink $dump = FileOpen($file & '.txt', 2) FileWrite($dump, $toFile) FileClose($dump) ClipPut($downLink) TrayTip('Dowload Link is in ClipBoard.', 'Download and Delete links are saved in ' & @CRLF & $file & '.txt', 5, 1) Sleep($tip) ExitLoop Case StringInStr($body, 'no file chosen') _IEAction($rapida, 'quit') Submit() Case Else MsgBox(16, '', 'WTF?') _IEAction($rapida, 'quit') Submit() EndSelect Sleep(500) WEnd _IEAction($rapida, 'quit') Func Submit() $rapida = _IECreate('http://www.rapidshare.com/', 0, $debug) $form = _IEFormGetObjByName($rapida, 'ul') $fileBox = _IEFormElementGetObjByName($form, 'filecontent') $clip = ClipPut($file) _IEAction($fileBox, 'focus') If $debug = 0 Then _IEAction($rapida, 'visible') Send('^v') If $debug = 0 Then _IEAction($rapida, 'invisible') _IEFormSubmit($form, 0) _IELoadWait($rapida) EndFunc ;==>Submit | Так вот MsgBox(16, 'WTF???', 'Can not get links!') происходит довольно часто, если я в процессе аплоада работаю, а если еще и буфер обмена глюкнет из-за пунты - вообще жопа. | Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 14:24 23-10-2008 | Исправлено: timsky, 14:28 23-10-2008 |
|