Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2008, 12:33   #1
PashaXP
 
Регистрация: 04.08.2008
Сообщений: 5
По умолчанию Получение HTML - кода???

Привет всем! Нахожу окно по заголовку -
FindWindow(nil, 'Имя окна'), оно является HTML, запущеной в браузере Internet Explorer... Есть ли такая функция для получения HTML-кода, этой странички, т.е. например Form1.RichEdit1.Text:=XXXXXX(..., k, ...); где k :HWnd
т.е. k:=FindWindow(nil, 'Имя окна')
????

У меня есть громоздкий вариант получения html - кода, но хотелось бы что-нить по проще...
PashaXP вне форума Ответить с цитированием
Старый 04.08.2008, 12:41   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

я уверен что такой функций нету.
Так как Тип Thandle это окно и не обязательно Internet explorer
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 04.08.2008, 12:47   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему можно, только нужно через интерфейсы к IE обратиться...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.08.2008, 12:51   #4
PashaXP
 
Регистрация: 04.08.2008
Сообщений: 5
По умолчанию

Жаль. Можно ли упростить код :
Код:
//--- Функция считивания html-кода в TMemo
 function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean;
 var
  //вытягивает код страницы в tstrings
  ps: IPersistStreamInit;
  s: string;
  ss: TStringStream;
  sa: IStream;
 begin
  ps := WB.document as IPersistStreamInit;
//  s := '';
  ss := TStringStream.Create(s);
  try
    sa:= TStreamAdapter.Create(ss, soReference) as IStream;
    Result := Succeeded(ps.Save(sa, Bool(True)));
    if Result then ACode.Add(ss.Datastring);
  finally
    ss.Free;
  end;
 end;
...
  ShellWindow := CoShellWindows.Create;
  // получаем запущенный экземпляр  Internet Explorer
   // для этого пробегаемся по всем окнам системы
 for k := 0 to ShellWindow.Count do
 begin{1}
    spDisp := ShellWindow.Item(k);
   if spDisp = nil then Continue;
    //QueryInterface определяет, может ли интерфейс использоваться с объектом
      // проверяем , а не Браузер ли это :
   spDisp.QueryInterface(iWebBrowser2, WB);
    if WB <> nil then
    begin{2}
    // проверяем , а не HTML ли это 
      WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
      if iDoc1 <> nil then   // если да, то выдергиваем html код
      begin{3}
      // связываем запущенный экземпляр Internet Explorera как браузер
        WB := ShellWindow.Item(k) as IWebbrowser2;
        begin{4}
          Form1.RichEdit1.Clear;//Отчистка RichEdit1
          GetHTMLCode(WB, RichEdit1.Lines);// Пишем html код в  RichEdit
end;
end;
end;
end;
....
в цикле, используя функцию поиск окна по заголовку - FindWindow ???

Последний раз редактировалось PashaXP; 04.08.2008 в 13:04.
PashaXP вне форума Ответить с цитированием
Старый 04.08.2008, 12:57   #5
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Компонент IDHttp
метод GET
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 04.08.2008, 13:12   #6
PashaXP
 
Регистрация: 04.08.2008
Сообщений: 5
По умолчанию

Может я конечно не доганяю))) Но в этом компонентк явно указывется URL, а у меня он постоянно меняется, остается лишь не изменен заголовок окна )))
PashaXP вне форума Ответить с цитированием
Старый 04.08.2008, 14:49   #7
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

я вот тоже не догоняю.Как я понимаю ты хочешь получить код странички в нете.У тебя URL меняется.Заголовок не меняется.
Я не догоняю причем здесь заголовок когда Html код у URL адреса существует а не у заголовка.

Расскажи что ты сделать хочешь?
Может помочь как из EDITa в internet explorer вытащить URL
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 05.08.2008, 13:41   #8
WittySpark
Пользователь
 
Регистрация: 14.08.2007
Сообщений: 13
По умолчанию

Так. Насколько я понял. Вам необходимо получить HTML-код страницы, которая открыта в браузере IE?
А не проще найти Handle адресной строки (через FindWindow) узнать URL странички и самому в программе спокойно скачать её (естественно в HTML-виде).
WittySpark вне форума Ответить с цитированием
Старый 05.08.2008, 15:04   #9
PashaXP
 
Регистрация: 04.08.2008
Сообщений: 5
По умолчанию

В общем нужно следующее - получить HTML-код странички, зная лишь заголовок окна (так как URL постоянно меняется, т.е например - http://111.111.0.2/repair/finish-form.php?wl_id=1 и в конце могут быть разные цифры. Но заголовок остается тот же). я реализовал получение кода на выше приведенном примере (перебираю все окна), но мне кажется это громоздким. Дело в том что на компе запущено куча всяких приложение - EXCEL, WORD, браузерыб в том числе IE. И все это не могу привязать через FIndWindow, чтобы не перебирать все окна...
PashaXP вне форума Ответить с цитированием
Старый 05.08.2008, 15:27   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Ничего страшного. FindWindow это грубо говоря просто перебор числового массива где для каждого элемента ищется строка ( заголовок ) или имя класса. Так что от этого нагрузки никакой. Есть вариант GetWindow для перебора окон, параметры смотрим в MSDN
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена HTML-кода c javascript'om avalon8 Работа с сетью в Delphi 0 31.07.2008 16:12
оптимиация Html кода Hallo HTML и CSS 18 06.12.2007 20:27
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51
Как выдрать из HTML кода ссылки? Vit2 Общие вопросы Delphi 1 24.04.2007 23:09