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

Вниз

ещё раз про левые эдиты...   Найти похожие ветки 

 
просто панк   (2002-08-15 02:48) [0]

мастера!... как можно получить текст из АКТИВНОГО эдита в html странице...я пользуюсь NetCaptor...садиться на ИЕ кто не в курсе...
пробовал вот так....но не получаеться...
var
targetOwner:dword;
threadID:dword;
attached:boolean;
txt:array[0..255] of char;
...........
begin
...........
targetOwner:=getWindowThreadProcessID(getForegroundWindow,nil);
threadID:=getCurrentThreadID();
if (targetOwner<>threadID) then attached:=attachThreadInput(threadID,targetOwner,TRUE);
sendMessage(getFocus,WM_GETTEXT,wParam(sizeOf(txt)),lParam(@txt));
// теперь можно узнать содержимое edit-a как string(txt)
if attached then attachThreadInput(threadID,targetOwner,FALSE);
...........
...........
end;

по совету rhf...


 
rhf   (2002-08-15 05:37) [1]

этим примером ты получаешь текст из елемента управления в котором находится фокус ввода..... для того что тебе хочеться это не подойдет..... :)


 
просто панк   (2002-08-16 01:04) [2]

а что подойдёт тогда?.... :)))


 
гвоздь   (2002-08-16 08:37) [3]

я тоже над этим думаю..... тожк надо, уже спрашивал, но никто не отвечает :(


 
просто панк   (2002-08-17 01:07) [4]

вот блин... элементарно вроде...но текст из ХТМЛ эдитов даже WinSeight 32 из Delphi не видит... :(


 
int64   (2002-08-17 06:24) [5]

По клику будет найден текст из активного <TEXTAREA>.

procedure TForm1.Button1Click(Sender: TObject);
var
Wnd: HWND;
Doc: iHTMLDocument2;
AI: iHTMLElement;
hInst: HWND;
lRes: Cardinal;
MSG: Integer;
ObjectFromLresult: TObjectFromLresult;
begin
Wnd := FindWindow("TFrmMain", nil);
if Wnd = 0 then
begin
showmessage("Не запущен ни один NetCaptor");
exit;
end;
Wnd := FindWindowEX(Wnd, 0, "TPanel", nil);
Wnd := GetNextWindow(Wnd, GW_HWNDNEXT);
Wnd := FindWindowEX(Wnd, 0, "TNCTransPanel", nil);
Wnd := FindWindowEX(Wnd, 0, "TNCPageControl", nil);
Wnd := FindWindowEX(Wnd, 0, "TBrowserTab", nil);
Wnd := FindWindowEX(Wnd, 0, "Shell Embedding", nil);
Wnd := FindWindowEX(Wnd, 0, "Shell DocObject View", nil);
Wnd := FindWindowEX(Wnd, 0, "Internet Explorer_Server", nil);
if Wnd <> 0 then
begin
hInst := LoadLibrary("Oleacc.dll");
@ObjectFromLresult := GetProcAddress(hInst, "ObjectFromLresult");
if @ObjectFromLresult <> nil then begin
try
MSG := RegisterWindowMessage("WM_HTML_GETOBJECT");
SendMessageTimeOut(Wnd, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
ObjectFromLresult(lRes, IHTMLDocument2, 0, Doc);
finally
FreeLibrary(hInst);
end;
end;
if not assigned(Doc) then exit;
AI:= Doc.activeElement;
if not assigned(AI) or (AI.tagName<>"TEXTAREA") then exit;
Memo1.Text:= AI.getAttribute("VALUE",0);
end;
end;


Дерзай.


 
int64   (2002-08-17 06:39) [6]

Забыл добавить:

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


 
просто панк   (2002-08-17 22:42) [7]

а куда пихать вот это?
TObjectFromLResult = function(LRESULT: lResult; const IID: TIID; WPARAM: wParam; out pObject): HRESULT; stdcall;

и ещё он выдаёт ошибку на
Doc: iHTMLDocument2;
AI: iHTMLElement;

мне в этом примере оч сложно разобраться так что я его просто копировал... поможите чем можите



 
int64   (2002-08-19 19:45) [8]


> а куда пихать вот это?
> TObjectFromLResult = function(LRESULT: lResult; const IID:
> TIID; WPARAM: wParam; out pObject): HRESULT; stdcall;

Это описание типа, туда и вставляй (слово type жирными буквами).

> и ещё он выдаёт ошибку на
> Doc: iHTMLDocument2;
> AI: iHTMLElement;

Добавь в
Uses ..., MSHTML, ActiveX;



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
1-95883
Brand
2002-08-01 22:45
2002.08.29
Вопросик???


1-95819
ivanVV
2002-08-16 22:13
2002.08.29
Работа с ini файлом


4-96033
SeF
2002-06-27 02:46
2002.08.29
чужая прога


1-95863
Artem_V
2002-08-18 08:40
2002.08.29
Курсоры


1-95749
Sniffer
2002-08-19 00:02
2002.08.29
Чтение из текстового файла