Что нового

[Сеть, интернет] Эмуляция нажатия кнопок.

AlexxxRu

Знающий
Сообщения
19
Репутация
6
Использовалось:
Firefox v 4.0
FFEx.au3
MozRepl 1.1b3

1. Задача
Программа постящая на странице, через опр. промежуток времени. Текст сообщения берётся из файла.
2. У меня получилось
На осн. ПК всё работает. На другом ПК не пишется текст в определённом поле, и вероятно не нажимается кнопка.
3. Процесс
При запуске скрипта открывается 2 окна ФФ. Одно содержания "Попытка соединения не удалась. Firefox не может установить соединение с сервером 4242.". Это окно не мешает работе скрипта, на осн. ПК.
И второе с контактом. В поле ввода ничего не появляется, кнопка вероятно не нажимается.
Лог второго ПК:
>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\dfgdfhgjffdFSGSDHFDGSFDGDH.au3" /autoit3dir "C:\Program Files\AutoIt3" /UserParams
+>02:53:59 Starting AutoIt3Wrapper v.2.0.1.24 Environment(Language:0419 Keyboard:00000409 OS:WIN_XP/Service Pack 3 CPU:X64 OS:X86)
>Running AU3Check (1.54.19.0) from:C:\Program Files\AutoIt3
+>02:54:00 AU3Check ended.rc:0
>Running:(3.3.6.1):C:\Program Files\AutoIt3\autoit3.exe "C:\dfgdfhgjffdFSGSDHFDGSFDGDH.au3"
__FFStartProcess: ""C:\Program Files\Mozilla Firefox\firefox.exe" -new-window "Конф. Инфа" -repl 4242
_FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 3
_FFConnect: AutoIt: 3.3.6.1
_FFConnect: FF.au3: 0.6.0.0b-5
_FFConnect: IP: 127.0.0.1
_FFConnect: Port: 4242
_FFConnect: Delay: 2ms
_FFConnect: Socket: 1628
__FFSend: try{window.content.top.document.browserDOMWindow}catch(e){'_FFCmd_Err';};
__FFRecv:
__FFSend: try{navigator.userAgent}catch(e){'_FFCmd_Err';};
__FFRecv: Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
_FFConnect: Browser: Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
__FFSendJavaScripts: Sending functions to FireFox .......... done
_FFLoadWait: . loaded in 22ms
__FFSend: try{window.content.top.document.getElementById('post_field').value='\u0411\u0430\u0431\u0430 \u0441 \u0432\u043E\u0437\u0443 \u2014 \u0417\u041E\u041C\u0411\u0418 \u041F\u041E\u0414\u0411\u0415\u0416\u0410\u041B\u0418 \u041F\u041E\u0414\u0425\u0412\u0410\u0422\u0418\u041B\u0418 \u0416\u0420\u0423\u0422 \u0420\u0410\u0414\u0423\u042E\u0422\u0421\u042F \u041A\u0410\u041A \u0414\u0415\u0422\u0418 \u0422\u0415\u0411\u042F \u041A\u0418\u0428\u041A\u0410\u041C\u0418 \u0423\u0413\u041E\u0429\u0410\u042E\u0422 \u0421 \u0421\u041E\u0411\u041E\u0419 \u041F\u0415\u0427\u0415\u041D\u042C \u0412 \u041B\u041E\u041F\u0423\u0425 \u0417\u0410\u0412\u0415\u0420\u041D\u0423\u041B\u0418[gfgdhgdh|\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043A \u0436\u0435...] '}catch(e){'_FFCmd_Err';};
__FFRecv: 010 A 2>7C    %"  #" #."!/  " "/ ( #)." ! ! ',  #%  #[gfgdhgdh|G8B09B5 B0: 65...]
__FFSend: try{FFau3.simulateEvent(window.content.top.document.getElementById('send_post'),'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv: 1
__FFSend: try{window.content.top.document.getElementById('post_field').value='\u0421\u0447\u0430\u0441\u0442\u044C\u0435 \u2013 \u044D\u0442\u043E \u043A\u043E\u0433\u0434\u0430 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u043F\u0438\u0437\u0434\u0435\u0446 \u0443\u0436\u0435 \u0437\u0430\u043A\u043E\u043D\u0447\u0438\u043B\u0441\u044F, \u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0435\u0449\u0451 \u043D\u0435 \u043D\u0430\u0447\u0430\u043B\u0441\u044F.[gfgdhgdh|\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043A \u0436\u0435...] '}catch(e){'_FFCmd_Err';};
__FFRecv: !G0ABL5  MB> :>340 ?@54K4CI89 ?8745F C65 70:>=G8;AO, 0 A;54CNI89 5IQ =5 =0G0;AO.[gfgdhgdh|G8B09B5 B0: 65...]
__FFSend: try{FFau3.simulateEvent(window.content.top.document.getElementById('send_post'),'MouseEvents','click');}catch(e){'_FFCmd_Err';};
__FFRecv: 1
Код:
Код:
#include <FFEx.au3>
#include <file.au3>
#include <GUIConstants.au3>
HotKeySet("{F4}", "_Exit")
Func _Exit()
	MsgBox (0, "Script Stoped", "Скрипт умер...")
	Exit(1)
EndFunc
Func _Posting()
	Sleep($S_time*1000)
	_FFSetValueById("post_field", ""&$str)
	_FFClick("send_post","id")
EndFunc

;==========================================================
;Проблемный кусок
;==========================================================
$vk_url = "Vkontakte/bla-bla-bla"
Global $S_time = 1000
$File_adrr = "C:\"
$temp = ""
Global $str = ""
$G_U_I = 1
While $G_U_I = 1
GUICreate ("VkBot", 512, 240)
GUISetBkColor (0x00fde910)
GUICtrlCreateLabel ("Задержка",15,20, 480,20,1)
GUICtrlCreateLabel ("Адрес паблика",5,65, 500,20,1)
GUICtrlCreateLabel ("Адрес файла.(Пример: C:\1.txt) ",5,105, 500,20,1)
GUICtrlCreateLabel ("F4 = Kill Script",100,200, 350,40,1)
$1 = GUICtrlCreateInput ($S_time,5, 40, 500, 20, 1)
$2 = GUICtrlCreateInput ($vk_url,5, 80, 500, 20, 1)
$3 = GUICtrlCreateInput ($File_adrr,5, 120, 500, 20, 1)
$ok = GUICtrlCreateButton ("Путь к FireFox" ,125,160,115,30,1)
$Starts = GUICtrlCreateButton ("Старт" ,300,160,115,30,1)
GUISetState()
$i=1
While $i=1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $OK
       $S_time = GUICtrlRead($1)
       $vk_url = GUICtrlRead($2)
       $File_adrr = GUICtrlRead($3)
       GUIDelete()
       $G_U_I = 1
       $i=0
Case $GUI_EVENT_CLOSE
	Exit(1)
Case $Starts
	$S_time = GUICtrlRead($1)
    $vk_url = GUICtrlRead($2)
    $File_adrr = GUICtrlRead($3)
	GUIDelete()
	$i=0
	$G_U_I = 0
EndSwitch
WEnd
WEnd
_FFStart($vk_url)
$i = 1
Do
$temp = FileReadLine($File_adrr,$i)
If @error = -1 Then
	Exit(1)
Endif
If NOT(StringInStr($temp, "[") = 0) Then ;надо отсылать всё, до "[", включаю строку с этим символом. 
	$str = (FileReadLine($File_adrr,($i-1))) & $temp
	_Posting()
EndIf
$i+=1
Until $i = -1

П.с. По на обоих ПК идентичны.
 
Верх