тема такая, на мэил.ру есть чаты, при заходе в любой чат появляется поле куда нужно ввести сообщение и кнопка "Отправить" мне же нужно сделать програмно чтобы поле заполнялось и нажималась кнопка отправить через определенный промежуток времени, по сути это будет флудер. Делфи: Я поместил на форму компонент WebBrowser1, поле ввода и кнопку соответственно, но проблема оказалась не в этом... сколько я не пробовал заполнить програмно поля и давануть на кнопку ничего не вышло... Если кто поможет буду благодарен вот собственно теги страницы http://chat.mail.ru/ (в любом чате): меня интересует <input class="discuss" type="text" name="txtr" id="txtr" value=""> <input id=sendbtn type="submit" value="Отправить" onmousemove="window.status='Отправить'"> кому интересно зайдите в любой чат мэил ру и посмотрите html код.
Нужно сделать POST запрос. Вот статья с примерами, там есть пример пост запроса на дельфи: http://forum.sysman.ru/index.php?showtopic=12171
мдя... но это не то нужно чтобы визуально в компоненте WebBrowser1 заполнилось поле, после чего также нажалась кнопка то что в статье написано я десяток раз сам делал это понятно нужно сделать примерно чтото типа этого: WebBrowser1.oleobject.document.getelementsbyid('txtr').item(0).Value:=Edit8.Text+Edit9.Text; WebBrowser1.oleobject.document.getelementsbyid('sendbtn').item(0).Click; только вот как??? этот пример не работает сколько я не пробовал, даже меняя item на 1,2, 3, 4 ничего не происходит.
Програмно открываешь браузер с нужной страницей, програмно передвигаешь мышку на текстовое поле, програмный клик => Поле становится активным, Прогамное нажатие клавишь, соответсвенно тексту, програмное передвижение мыши на кнопку програмный клик...
ПОСТ запрос, как сказал Kaimi, это самый оптимальный вариант. Читай хтмл-страницу, что получил. Ищи там форму ввода, а потом оправляй ПОСТ запрос.
:::vertas:::, Kaimi направил тебя на отличную статью..... Там все есть.....Или тебе нужен готовый исходник????? Если не сложно выложи что ты сам пытался делать....Поглядеть интересно...
Code: function TForm1.ByName(FieldName: string; Value: string): Boolean; var i, j: Integer; FormItem: Variant; begin Result := False; if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then begin Exit; end; for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do begin FormItem := WebBrowser.OleObject.Document.forms.Item(I); for j := 0 to FormItem.Length - 1 do begin try if FormItem.Item(j).Name = FieldName then begin if Value = 'Click' then FormItem.Item(j).Click else FormItem.Item(j).Value := Value; Result := True; end; except Exit; end; end; end; end; function TForm1.ByImg(Src: string; Value: string): Boolean; var i, j: Integer; FormItem: Variant; begin Result := False; if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then begin Exit; end; for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do begin FormItem := WebBrowser.OleObject.Document.forms.Item(I); for j := 0 to FormItem.Length - 1 do begin try if FormItem.Item(j).Src = Src then begin if Value = 'Click' then FormItem.Item(j).Click else FormItem.Item(j).Value := Value; Result := True; end; except Exit; end; end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin //заполняем поля на яндексе WebBrowser.Navigate('http://mail.yandex.ru/'); ByName('login', 'uzver'); ByName('passwd', 'pas123'); ByImg('http://img.yandex.net/wmi/classic/static/7/i/tb/i24-new-msg.gif', 'Click'); //в результате этой функции произведёться клик по картинке с данным именем файла end; c нажатием кнопок всё немного посложнее, т.к. кнопки не вегда имеют имена. Ну и конечно обязательно ложка дёгтя =)) разработчики из майкрософта сделали недоступной функцию SetVal для полей типа file т.е. им нельзя задать значение... вот такое вот западло, так что письмо с аттачем подобным образом не отправишь :'(
какие извращения? С постом я уже разобрался... просто вопрос был: "Как заполнить поле" вот я и выложил что то типа ответа... чтобы если чё люди могли найти и посмотреть.