Работа с COM("InternetExplorer.Application");

Anatoly

Новичок
Работа с COM("InternetExplorer.Application");

Хочу написать скрипт авто заполнения формы на сайте

как я понимаю, лучший вариант - создать экземпляр IE
и заполнить его параметры.

Сначала все было хорошо:

$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://...");

открылся броузер и загрузилась страница,

но потом:
$doc = $browser->Document; - привело к : Warning: main(): PropGet() failed: Ошибка. Source: Unavailable Description: Unavailable in...
$doc->getElementsByName("message");

а попытка сделать так:

$value1 = $browser->Document->getElementsByName("message");

привела к: Warning: (null)(): PropGet() failed: Ошибка. Source: Unavailable Description: Unavailable in...

кто нибудь знает как победить? (использую php 4.4.4 )

Спасибо!
 

ustas

Элекомист №1
читай MSDN. Поставь Visual Studio, дальше сам разберешся
 

Scud

Новичок
Документ до момента загрузки страницы, точнее события document complete, не доступен.
 

Anatoly

Новичок
Автор оригинала: Scud
Документ до момента загрузки страницы, точнее события document complete, не доступен.
поставил большую задержку, страница точно успевает загрузится, все равно такая же ошибка...

-~{}~ 28.08.07 23:49:

еще MSDN говорит что у документа нет события complete ...
 

dimagolov

Новичок
ну по крайней мере у window есть onload, а вот доступно ли оно через COM надо смотреть
 

ustas

Элекомист №1
не знаю что ты читал, но так ты точно ничего не получишь
поищи пример на бейсике в инете, их полно
 

HraKK

Мудак
Команда форума
Наконец вы додумались это спросить. Делаете успехи.
 

ustas

Элекомист №1
Anatoly
$browser->Navigate .....
блин ведь чуствовал, что событие должно быть.
Это ж ДОКУМЕНТ!!!
PHP:
<?php
class IEEventSinker {
  var $terminated = false;

  function ProgressChange($progress, $progressmax) {
    echo "Download progress: $progress / $progressmax\n";
  }

  function DocumentComplete(&$dom, $url) {
    echo "Document $url complete\n";
  }

  function OnQuit() {
    echo "Quit!\n";
    $this->terminated = true;
  }
}
$ie = new COM("InternetExplorer.Application");
// note that you don't need the & for PHP 5!
$sink =& new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.php.net");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>
читать доки моки.
 

Anatoly

Новичок
while(!$sink->terminated) {
com_message_pump(4000);
}
здесь ждет, а через 30 секунд таймаут
сделал страничку для проверки, из 1 строки:
<input type = text name=message id=message ><br>

гружу ее, все равно происходит таймаут.
 

Anatoly

Новичок
а зачем вообще автозаполнять какие-то формы?
т.е. вы хотите сказать что можно напряму отсылать http запрос?
я про это узнал недавно и пока не знаю, как к этому подступиться...
 

Anatoly

Новичок
есть сайты в которых рейтинги зависят от активности участников, есть идея автонакрутки рейтинга путем общения нескольких анкет "друг с другом"...
ничего криминального в этом невижу :)
обычная автоматизация...

и вообще - теперь уже просто интересно, что же происходит с документом!
 

slach

Новичок
обсуждения накрутки и кража контента нарушают правила форума
 

Anatoly

Новичок
я ни не собирался обсуждать накрутку, а просто пытаюсь
решить техническую проблему, или теперь создание экземпляра броузера будет вне закона? все равно такую информацию можно будет раскопать. Думаю лучше если решение будет на этом форуме - что только сделает его полнее и соответственно популярнее.
 

HraKK

Мудак
Команда форума
Что бы каждый ламер мог накручивать и спамить?
 

Anatoly

Новичок
хорошо, вот еще для чего мне это нужно:
хочу заполнять планы своего рабочего времени в своей фирме - если к вечеру планы на завтра не заполнены, это может сказатся на премии, главное туда что то записать - у рабоей базы есть
веб расширение ( известная связка 1С + web расширение )

на рабочем месте запустить внешнюю обработку в самой базе не могу - естественно нет прав.

достойное занятие?
 
Сверху