Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Как отловить содержимое Edit ов в форме IE ?   Найти похожие ветки 

 
KOMBAS   (2004-12-20 21:55) [0]

Хочу написать программу которая выдергивает значение из поля ввода формы в IE
Для этого определил указатель на поле ввода, но функции WM_GetText и GetWindowText возвращяют пустое значение :(
Не хотят работать с классом "Internet Explorer_Server"
Как же тогда мне быть ?


 
Ihor Osov'yak ©   (2004-12-21 03:34) [1]

1. Получить от соотв. окна IHTMLDocument2
2. для решения Вашей задачи имея в руках IHTMLDocument2 нужно задействовать возможности mshtml.dll (и по парсингу, и по вводу-выводу)

Более подробно.

1. Примерно так:

type
 TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM:
   wParam; out pObject): HRESULT; stdcall;

const
 MSG: Integer = 0;
 hInstLib: HWND = 0;
 ObjectFromLresult: TObjectFromLresult = nil;

function GetIDocFromHWND(WHandle: HWND; var iDoc: IHtmlDocument2): HRESULT;
var
 lRes: Cardinal;
begin
 Result := S_FALSE;
 if hInstLib = 0 then
   hInstLib := LoadLibrary("Oleacc.dll");
 if not assigned(ObjectFromLresult) then
   @ObjectFromLresult := GetProcAddress(hInstLib, "ObjectFromLresult");
 if @ObjectFromLresult <> nil then
 begin
     if MSG = 0 then
       MSG := RegisterWindowMessage("WM_HTML_GETOBJECT");
     SendMessageTimeOut(WHandle, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
     Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, iDoc);
 end;
end;


2. как введение в тему поищите статью "Использование функциональности IE" в "подземелье магов" на Королевстве... Либо сразу поиск в msdn по ключевым  словам IHTMLDocument2, IHTMLInputElement...


 
KOMBAS   (2004-12-21 17:31) [2]

Дело в том что я не сильно в этом разбираюсь :)
Не могли бы вы мне дать конкретный пример Please
Например хендл эдита находится в переменной hWndEdIE
как в переменную edcapt засунуть этот текст :)
Заранее благодарен за ответ !


 
cerber1 ©   (2004-12-21 22:25) [3]

Если я не ошибаюсь, то у Едита на НТМЛ форме нет хендла?!


 
AGAMEMNUM   (2004-12-22 01:01) [4]

Народ прав, нету у эдита хендла так как не окно это вовсе, а картинка вобщем... и весь этот гемор тебе придется выписывать... но смотря что те нужно... если установить какое нить значение и отправить запрос, то не парься, а посмотри что в поле Action записано, подставляй параметры и пость на сервак... и IE для этого нафиг не нужен...


 
KOMBAS   (2004-12-22 12:46) [5]

Что значит нет хэндла, когда я его нашёл ?
И это не картинка!
Я проверял!
Отсылал эдиту WM_Char, работает ОК!
А вот брать текст из него не хочет


 
BiN ©   (2004-12-22 13:43) [6]

>>KOMBAS   (20.12.04 21:55)

Копай в сторону ShellWindows Object


 
KOMBAS   (2004-12-22 16:40) [7]

>>Bin
Что это значит ?
Поконкретнее если можно плиззз


 
BiN ©   (2004-12-22 17:21) [8]

KOMBAS   (22.12.04 16:40) [7]

читаем
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/objects/shell/shell.as p
обращаем внимание на свойство Windows объекта Shell
затем
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp

и рождаем что-то типа

var
 ShellObj:Variant;
 shWindows, shWindowItem: Variant;
 wCount, i: Integer;
 strTemp: String;
begin
 Memo1.Lines.Clear;
 try
 ShellObj:=CreateOleObject("Shell.Application");
 if not VarIsNull(ShellObj) then
 begin
   shWindows:=ShellObj.Windows;
   if not VarIsNull(shWindows) then
   begin
     wCount:=shWindows.Count;
     for i:=0 to wCount-1 do
     begin
       shWindowItem:=shWindows.Item(i);
       //здесь мы в shWindowItem имеем ссылку на один из InternetExporer object
       strTemp:=Format("URL: %s; Path: %s",
       [shWindowItem.LocationUrl, shWindowItem.Path]);
       Memo1.Lines.Add(strTemp);
.....
....
       // и так далее
     end;
   end;
   shWindows:=Null;
 end;
 finally
 ShellObj:=Null;
 end;
end;


затем читаем
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
и
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/form.asp
а также
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/body.asp

особо радуемся, когда находим описания свойств innerText и innerHTML

с уважением


 
KOMBAS   (2004-12-23 01:51) [9]

>> BIN
если можно по конкретнее объясни плз
а то я в COM не шарю :)



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

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
3-1105162091
va
2005-01-08 08:28
2005.02.13
БД - IntraWeb


3-1105688598
Zoa
2005-01-14 10:43
2005.02.13
Промежуточная база?


14-1106433579
i-s-v
2005-01-23 01:39
2005.02.13
Молдова


3-1105607387
Yurisimus
2005-01-13 12:09
2005.02.13
Посоветуйте хороший DBGrid


6-1101589196
leonidus
2004-11-27 23:59
2005.02.13
Использование кукисов в Indy