Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IHTMLInputFileElement value? [D5, WinXP]


xmrz ©   (2004-09-08 19:21:00) 

Уважаемые мастера, кто-нибудь может помочь решить эту проблему?
Разбираю страницу через TWebBrowser. Возникла насущная необходимость заполнять поля с type="file" (метод set_value()). MSDN и FAQ уже перерыл. На чтение возможность есть, а на запись Micro$oft возможность заблокировали.
У меня единственный вариант: делать "click", а потом искать окно (FindWindow) с "Выбор файла", там в поле вводить текст и нажимать "Выбрать". Вариант скажим так не лучший. Кто нибудь решал эту проблему? Вариант отправлять заголовки мне не подходит, нужно заполнять поле на живую.


xmrz   (2004-09-08 22:14:00) [1]

>>И правильно сделали. По соображениям безопасности.
целиком и полностью согласен

проделал следующие манипуляции:

wb : TWebBrowser;
fel : IHTMLInputFileElement;
...

fel := FCol.item(j,varEmpty) as IHTMLInputFileElement;
wb.SetFocus;
fel.select;
...
и через keybd_event() посылаю последовательность символов, а в поле - пустота

Что не так?


xmrz   (2004-09-08 22:12:00) [2]

>>И правильно сделали. По соображениям безопасности.
целиком и полностью согласен

проделал следующие манипуляции:

wb : TWebBrowser;
fel : IHTMLInputFileElement;
...

fel := FCol.item(j,varEmpty) as IHTMLInputFileElement;
wb.SetFocus;
fel.select;
...
и через keybd_event() посылаю последовательность символов, а в поле - пустота

Что не так?


Ihor Osov'yak   (2004-09-08 21:52:00) [3]

> а на запись Micro$oft возможность заблокировали.

И правильно сделали. По соображениям безопасности.

>У меня единственный вариант:...

боюсь, что он единственный.  Можно только слегка модифицировать - не делать клика, просто сфокуcировать соотв. IHtmlElement и слать соотв. сообщения (имитирующие рвьоту клавиатуры) хендлу контрола, который хостит соотв. активИкс (для TWebBrowser это будет WebBrowser.Handle)

>но эти контролы они вроде не окна?

Не окна.


xmrz   (2004-09-08 19:46:00) [4]

Если бы можно было "не отходя от кассы" получить что-то типа handle поля с WebBrowser'a в которое надо внести значение, и послать ему сообщение SET_TEXT, но эти контролы они вроде не окна? Может есть еще варианты?


Наверх

Титульная страница Поиск, карта сайта Написать письмо