Что нового

[Сеть, интернет] Автоматическое выполнение действий в FireFox

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Версия AutoIt: 3.3.6.1

Описание: Нужна помошь с написанием скрипта , скрипт должен уметь
1. После запуска скрипт должен следить за url вкладки FireFox и если url изменится то ждать 40 сек и выполнять определенные действия (с продолжением уже разобрался осталось только заморочка с url )

Примечания: в скрипте должны присутствовать горячии клавиши: пауза и продолжение. страница уже загружена в FireFox вкладка активная и имеет неменяющееся название.


очень нужна ваша помощь...
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
qsort сказал(а):
[quote author=general66]
1. После запуска скрипт должен следить за url вкладки FireFox и если url изменится ... страница уже загружена в FireFox вкладка активная и имеет неменяющееся название... очень нужна ваша помощь...
Не совсем понятно какого плана помощь требуется. Когда FireFox меняет url, он меняет и заголовок окна. Или я чего-то не догоняю?;) Хоть бы пример какой... Существует библиотека для FireFox, но исходя из того, что написано, ее использование вовсе не требуется.
Код:
if WnGetTitle("[CLASS:MozillaUIWindowClass]") <> "Неменяющийся заголовок твоего окна" then
   …
   ;твои мощные действия на этот печальный случай
   …
endif
[/quote]

там такой случай после загрузки в строке ввода адрес выглядит http://начальная страница/3577/?prefix=born , а после прошествии определенного времени сервер ее обновляет и адрес выглядит http://начальная страница/3577/ вот после этого обновления и нужно продожать скрипт который в это время следит за FireFox . визуально странички отличий не имеют за исключением одного блока который присутствует при загрузке и отсутствует после обновления. Вот и нужно решение которое продолжает исполнение скрипта после обновления страницы. Страницу сервер обновляет по прошествии определенного времени. Вот при этом заголовок окна и вкладки не изменяются.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
В Mozilla Firefox можно сделать следующее:
Файл - Открыть адрес (Ctrl+L) (при этом выделится URL в адресной строке открытой вкладки).
Если теперь нажать Ctrl+C, - этот URL будет скопирован.
Значит за это можно зацепиться.
Примерно так:
Код:
ControlSend("[Class:MozillaUIWindowClass]", "", "[CLASS:MozillaWindowClass; INSTANCE:1]", "^l") ;выделть Ctrl+L
ControlSend("[Class:MozillaUIWindowClass]", "", "[CLASS:MozillaWindowClass; INSTANCE:1]", "^c") ;скопировать Ctrl+С
$url = ClipGet();прочитать буфер
MsgBox(0, "url", $url)

Работает и при свернутом окне браузера.
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Yuriy сказал(а):
В Mozilla Firefox можно сделать следующее:
Файл - Открыть адрес (Ctrl+L) (при этом выделится URL в адресной строке открытой вкладки).
Если теперь нажать Ctrl+C, - этот URL будет скопирован.
Значит за это можно зацепиться.
Примерно так:
Код:
ControlSend("[Class:MozillaUIWindowClass]", "", "[CLASS:MozillaWindowClass; INSTANCE:1]", "^l") ;выделть Ctrl+L
ControlSend("[Class:MozillaUIWindowClass]", "", "[CLASS:MozillaWindowClass; INSTANCE:1]", "^c") ;скопировать Ctrl+С
$url = ClipGet();прочитать буфер
MsgBox(0, "url", $url)

Работает и при свернутом окне браузера.

да это то что надо только проблема в том что я несколько дней разбираюсь с autoIT и как уже наверное всем понятно нуб в этом пока что не могли бы вы составить\исправить\дополнить скрипт который я в силу своего понимания написал очень надеюсь на вашу помощь ибо сам буду еще очень долго разбираться, а скрипт этот облегчил бы мне жизнь уже сегодня :-[.

собственно то что мне надо

Код:
; Скрипт автоматически запускается при старте системы
; запустился и ждет (первого_действия)

; опредиление горячих клавиш

; пауза скрипта Alt
HotKeySet("!","Pause1")
; продолжение скрипта (правая_кнопка_мыши)
HotKeySet("right","_Start")

; первое действие
; после нажатия на (правая_кнопка_мыши) на любом 
; поле в поле вводится слово есле в поле что то написано то оно
; должно стереться

While 1
    Sleep(250)
    If _IsPressed(01) And $bStart Then
        _Spam()
    EndIf
WEnd

Func _Start()
    $bStart = Not $bStart
EndFunc

Func _Spam() ;функция 
    Send( "Слово")  ;Слово

EndFunc

; после этой вставки скрипт начинае проверять url 
; вкладки с названием (название_вкладки) если там 
; url (url_1) то скрипт через 2 сек опять проверяет
; туже вкладку, если вкладка изменилась (url_2) то 
; скрипт через ( 50 сек )продолжает выполняет ниже
; преведенные действия.

; Отключиться от интернета
  $CONNECTNAME="Utel"
 ShellExecute(@SystemDir&"\RASPHONE.EXE"," -H "&$CONNECTNAME)
  Sleep(2000)
; logoff системы 
; Пользователь куда необходимо зайти
 $UserName = "1"
 $UserPasswords = ""
; Вносим изменения в реестр для autologon пользователя
  RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoAdminLogon", "REG_SZ", "1")
  RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "ForceAutoLogon", "REG_SZ", "1")
  RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName", "REG_SZ",  $UserName)
  RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultPassword", "REG_SZ", $UserPasswords )
; Выходим из текущего пользователя и заходим в необходимого
_RunDOS("shutdown -f")


Да и еще в силу некоторых особенностей я этот скрипт скомпилирую и он будет запускаться из автозагрузки будут ли при таких условиях работать все его функции.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
qsort
Все эти, блин, "нажатия" - дело такое...
Какое?
да еще и без проверки текущей раскладки
Это подразумевалось само собой,
как и привести пример с FileCopy без предварительной проверки
существования копируемого файла.
Пусть разбирается. Я не против.
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
qsort
Просто я несколько дней только пользуюсь autoIT и очень тяжело за 3 дня написать для себя полно функциональный скрипт который облегчит жизнь уже сегодня ,вот и подумал что в этом разделе можно "заказать" или хотя бы получить помощь от тех для кого все эти функции само собой разумеющиеся вещи :'( что ж буду дальше пытаться.... спасибо всем откликнувшимся
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
general66
{OverQuoteWarn}
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
...требуется осуществить некоторые действия при нажатии на правую кнопку мыши...
просто я хотел как-то минимизировать нажатия на клавиатуре и мышке и свел все к нажатию на правую кнопку мыши. в виду своего незнания функций языка думал что возможно по нажатию на правую кнопку убить двух зайцев 1) заполнить поле и 2) запустить скрипт на продолжение после после рассмотрения вашего примера понял всю абсурдность своей затеи повесить это на правую кнопку. В вашем примере все в принципе получается как надо даже лучше чем я планировал :ok: я просто заменил
Код:
If _IsPressed(02) And $bStart Then

на
Код:
If _IsPressed(01) And $bStart Then


а этот хоткей
Код:
HotKeySet("{right}","_Start")
будет нужен что б при клацание на других полях не срабатывала функция _Spam
теперь она срабатывает только там где мне нужно.

теперь дело осталось за малым как реализовать проверку на какой странице мы находимся и если url совпадает то скрипт продолжает свое действие дисконект и логофф.
конечно не все так просто, оказалось что надо сделать несколько манипуляций с браузером. короче не было у меня FF.au3 и в браузере не было MozRepl. все нашел все подключил.
теперь:
1 мы знаем необходимый нам url
2 мы знаем название вкладки в FF в которой проверять url
а вот как сделать ? чето не совсем получается. если такое возможно не могли бы вы написать как это реализовать ?? подсоединится к браузеру и получить инфу получилось а дальше...
заранее при много благодарен за оказанную помощь :beer:
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
qsort
Вот то что получилось пожалуйста посматрите все ли правильно сделал, вроде бы скрипт работает.

Код:
#include<Misc.au3>
#include <process.au3>
#Include <FF.au3>
_FFConnect()
; Назначаем горячую клавишу
HotKeySet("{ENTER}","_Start")
; Объявляем переменную
Dim $bStart = False
; По нажатию на клавишу вписываем слово
While 1
    Sleep(25)
    If "{ENTER}" And $bStart Then
        _Spam()
        ExitLoop
    EndIf
WEnd
Func _Start()
    $bStart = Not $bStart
EndFunc
Func _Spam() ; функция спама
	Send("{TAB 2}")
		Sleep(100)
    Send( "Sid0r")  ; Ник
		Sleep(100)
	;Send("{TAB 41}")
EndFunc
; Сравниваем текущий адрес
While 2
	; _FFConnect()
	_FFCmd(".location.href")
	$oUrl = "http://forum.index.php?board=17.20"
	If $oUrl = _FFCmd(".location.href") Then
	Sleep(1000)
	Else 
		While $oUrl <> _FFCmd(".location.href")
			Sleep(5000)
		WEnd
	EndIf
	ExitLoop
WEnd
; Выполняем выход из системы
MsgBox(0, "Disconect", "конец скрипта")
; Завершение работы скрипта
Func _Exit()
    Exit
EndFunc


огромное спасибо за помощь без вас я бы не разобрался :beer:

но есть еще один вопросик для полного счастья осталось чтоб скрипт после вставки слова клацнул на кнопочке фокус на нее можно поставить 41 раз нажать на ТАВ. а дальше для меня начинается вообще высшая математика. какую функцию использовать их так много ,и как не говоря уже о веб программировании. единственное что смог найти в теле страницы это вот это
<a href='#' onClick='document.getElementById("voteFrom").submit(); return false;'><img src='/images/vote2.gif' alt='Проголосовать'></a>
как не эту кнопочку нажать понятия не имею, если не трудно подскажите как это сделать? не откажусь от готового примера, но и за совет буду благодарен ;)
 
Автор
G

general66

Пришел увидел наследил
Сообщения
211
Репутация
3
Жесть :laugh: в хорошем смысле того слова ты показал мне два дополнения к ФФ которые в корне изменили мое отношение к ФФ за что тебе - как говорит у нас продвинутая молодежь "респект и уважуха" :D все решено все работает еще раз огромное спасибо за помощь.
 

spy686

Новичок
Сообщения
12
Репутация
0
а такая задачка:

есть FF и в нем работает iMacros, но по не известным мне причинам (предпологаю, что из-за долгой загрузки страницы) iMacros останавливается.

есть ли возможность узнать - остановился ли он или нет?
копировать и сравнивать ссылку нет смысла, т.к. iMacros выполняет постоянно обновление страницы и если там появляется то что надо он сам все нажимает и делает, бывает может пол дня обновлять страницу и больше ничего не делать. Есть ли возможность следить за действием FF, т.е. если станица в течении 5 минут не обновлялась, то выполнить перезапуск скрипта?
 
Верх