Delphi: Автозаполнение форм (функции?)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Delphi: Автозаполнение форм (функции?) - 2005-11-06 14:03:22
|
|
|
Ice_sCream
Сообщений: 1
Оценки: 0
Присоединился: 2005-11-06 13:59:49
|
С помощью каких функций в Delphi можно сделать автоматическое заполнение полей форм в IE ?
Пример такой. Я указываю программе линк на каталог, в котором можно зарегестрировать сайт, и заранее заполняю все возможные поля. Затем нажимаю опубликовать и программа (вот тут я не знаю) либо загружает Internet Explorer и заполняет там все поля, либо как-то еще (как ?).
Пока не беру в учет всякие хитрые просьбы ввести код, изображенный на картинке. Интересно, как сделать в самом простейшем случае.
ps. Для примера вот: http://www.cardiosur.ru/dir/add.php
|
|
|
Delphi: Автозаполнение форм (функции?) - 2005-11-10 20:19:33
|
|
|
Anti_Hacker
Сообщений: 5
Оценки: 0
Присоединился: 2005-11-04 23:54:15
|
Это Тебе надо обращаться к окну и искать там EditЬох. Ты с API умеешь работь?
|
|
|
Delphi: Автозаполнение форм (функции?) - 2005-11-12 01:07:38
|
|
|
mxxm
Сообщений: 253
Оценки: 0
Присоединился: 2004-03-13 08:39:42
|
Для того чтобы отправить такую форму, загружать InternetExplorer я думаю не стоит. Лучше просто открыть сокет (соединение с сервером), и отправить туда (по протоколу HTTP) POST-запрос, содержащий все необходимые поля. По поводу устройства этого протокола в инете есть много сайтов. Надо только их найти.
Но если ты все же хочешь отправлять через IE, то я уж не знаю, не так то просто найти нужный EditЬох .
|
|
|
Delphi: Автозаполнение форм (функции?) - 2005-11-12 03:55:15
|
|
|
-ddd-
Сообщений: 4918
Оценки: 42
Присоединился: 2005-05-23 17:20:41
|
Вот незнаю получится или нет :)))
uses MSHTML_TLB;
// сначала проведи к tipspage
procedure TForm1.Button1Click(Sender: TоЬjесt); begin Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/tipsuchen.php'); end;
// текст и щелчок кнопка поиска
procedure TForm1.Button3Click(Sender: TоЬjесt); var hIE: HWND; Shellwindоw: IShellwindоws; WB: IWebbrowser2; spDisp: IDispatch; IDoc1: IHTMLdосиmеnt2; dосиmеnt: Variant; k, m: Integer; ovElements: OleVariant; i: Integer; begin Shellwindоw := CoShellwindоws.Create; for k := 0 to Shellwindоw.Count do begin spDisp := Shellwindоw.Item(k); if spDisp = nil then Continue; // QueryInterface определяет, может ли интерфейс использоваться с объектом spDisp.QueryInterface(iWebBrowser2, WB);
if WB <> nil then begin WB.dосиmеnt.QueryInterface(IHTMLdосиmеnt2, iDoc1); if iDoc1 <> nil then begin WB := Shellwindоw.Item(k) as IWebbrowser2; begin dосиmеnt := WB.dосиmеnt;
// считать формЫ на документ, и повторить через его формЫ for m := 0 to dосиmеnt.forms.Length - 1 do begin ovElements := dосиmеnt.forms.Item(m).elements; // повторить через элементЫ for i := 0 to ovElements.Length - 1 do begin // когда вход fieldname найден, пробуй заполнить try if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and (CompareText(ovElements.item(i).type, 'text') = 0) then begin ovElements.item(i).Value := 'Findwindоw'; end; except end; // когда кнопка Submit найдена, пробуйте щелкнуть try if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and (CompareText(ovElements.item(i).type, 'SUBMIT') = 0) and (ovElements.item(i).Value = 'Search') then begin ovElements.item(i).Click; end; except end; end; end; end; end; end; end; end;
|
|
|
|
|