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

Вниз

Как отловить содержимое 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 вся ветка

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

Наверх





Память: 0.47 MB
Время: 0.058 c
3-1105960214
Orc
2005-01-17 14:10
2005.02.13
Не полное добавление записей update в цикле.


1-1107178538
Fonda
2005-01-31 16:35
2005.02.13
Сортировка в Excel


1-1107252218
markers
2005-02-01 13:03
2005.02.13
Права доступа


3-1105955534
Максим
2005-01-17 12:52
2005.02.13
FireBird и SQL запрос


14-1106515978
UndertWork
2005-01-24 00:32
2005.02.13
MySQL_dbExpress





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский