Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

Управление Internet Explorer   Найти похожие ветки 

 
PVOzerski   (2003-11-10 13:14) [0]

Мне на своей халтуре приходится набивать через обычные браузеры базу данных. При этом user interface этой БД сделан не слишком удобно. В частности, приходится выделять помногу элементов в MultiSelect ListBox"ах на Web-странице, притом вручную предписывается делать то, что вполне поддается алгоритмизации. Естественно, я попытался это дело автоматизировать: находить в окошке браузера нужнве ListBox"ы и программно выставлять selected в нужных позициях. Делал это так: искал из своей программы дочерние элементы класса ListBox (или подобных) в окошке браузера, проверял число элементов (оно постоянно для нужных мне) и посылал им LB_SETSEL. Для Netscape 4.x этот трюк прошел "на ура". Но программкой заинтересовались мои коллеги, а они сидят в IE. А там дело оказалось хуже: я тоже смог выделять элементы ListBox"а, однако только с точки зрения "на экране", но не для IE: при передаче введенного удаленному CGI-приложению он сообщает ему только то, что введено "вручную". Не хочется мне заниматься эмуляцией ввода с мыши или даже c клавиатуры, нет ли более разумных путей? Вдруг кто с подобной задачей сталкивался?


 
panov   (2003-11-10 13:47) [1]

Как я понял, данные в достаточной мере структурированы, поэтому
меня простое преложение - обрабатывать запросы ир езультаты не браузером, а простыми сокетами.


 
PVOzerski   (2003-11-10 13:57) [2]

2 panov[1]: боюсь, от браузеров не уйти. Помимо "стабильных" полей для ввода, есть еще и "вариабельные", так что тогда придется писать практически свой браузер, по меньшем мере - очень интеллектуального клиента - не очень хочется :^(... Может, как-нибудь эксплорером через OLE управлять можно или что-нибудь подобное?


 
Романов Р.В.   (2003-11-10 14:03) [3]

А саму страницу поправить нельзя? Скриптов всяких умных добавить.


 
BizonWar   (2003-11-10 14:05) [4]

Конечно, можно. Посмотри объектную модель IE. Кроме того, компонент TWebBrowser - это есть обычный IE. я не ковырялся в его исходниках, но на сколько я понял - он просто поднимает IE и с ним работает. У меня получилось обращаться ко всем объетам их свойствам и методам.


 
PVOzerski   (2003-11-10 15:17) [5]

Следующий дурацкий вопрос: а как найти именно то окно, эксплорера, которое мне нужно, если открыто несколько. А нужно активное окно, в то время как после выполнения IE:=GetActiveOleObject("InternetExplorer.Application") я получаю доступ к 1-му запущенному окну. Можно ли добраться до интересующего (доступны и уникальны заголовок и, естественно, hwnd)?


 
BizonWar   (2003-11-10 15:42) [6]

А обязательно к уже открытому окну обращаться?
Может такой вариант подойдет?
procedure TForm1.Button1Click(Sender: TObject);
var IE:OleVariant;
begin
IE:=CreateOleObject("InternetExplorer.Application");
IE.Visible:=true;
IE.Navigate(" Http://www.mail.ru");
end;


 
PVOzerski   (2003-11-10 16:04) [7]

2BizonWar:
Нет, такой вариант неудобен. Я, на самом деле, уже кое-что отыскал на эту тему, но легче с того особо не стало. Проблема, оказывается, решается через интерфейс IShellWindows, но в тех версиях Delphi, что у меня под рукой, он не реализован в RTL.
В примерах же всё вот такое:

function GetActiveIEBrowser: IWebBrowser2;
var
shellWindows: IShellWindows;
i: Integer;
webBrowser: IWebBrowser2;
begin
Result:= nil;
shellWindows:= CoShellWindows.Create;
for i:=0 to shellWindows.Count -1 do
if Supports(shellWindows.Item(i), IWebBrowser2, webBrowser) then

А CoShellWindows у меня просто нет, ни в каком юните RTL. Может, кто поделится по E-Mail нужным кусочком?


 
BizonWar   (2003-11-10 16:17) [8]

Если не то послал, то что именно нужно?


 
nikkie   (2003-11-10 19:01) [9]

>PVOzerski
что-то мне кажется Вы куда-то не туда двинулись... вот это читали?
http://www.delphikingdom.ru/mastering/tweb.htm


 
PVOzerski   (2003-11-11 15:19) [10]

2all: все получилось, особое спасибо BizonWar!



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-37763
miracle_fox
2003-12-29 17:00
2004.01.13
клавиша <enter> в Edit - как придать ей особое значение?


1-37694
serg128
2003-12-25 18:55
2004.01.13
Не отображаются MDI-окна в меню программы


8-37801
Tahion2
2003-09-06 13:54
2004.01.13
Конвертирование png2ico


1-37797
Anka12345
2003-12-27 18:05
2004.01.13
выводятся только первые 3 слова ПЕРВОГО предложени


1-37696
Eugene
2003-12-26 02:34
2004.01.13
Update





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский