Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос по левым Edit ам..


просто панк ©   (2002-08-06 01:18:00) 

мне нужно получить текст из активного в данный момент Edita другого приложения...т.е есть форма чужая, на ней в данный момент активен Эдит...вот как мне заюзать от туда текст?


просто панк   (2002-08-14 01:07:00) [1]

ну чё ни кто не знает?.....или все знаю но молчат? :))


просто панк   (2002-08-12 23:09:00) [2]

тяяяяяякс.....это опять я.. :)
народ а как получить текст из Эдита который находиться в броузере...ну т.е есть например ХТМЛ чат... в нём есть строка ввода мессаг... это чё уже не Edit получаеться? можь input какойнить? пробовал примером у рхф а он тока из активного "настоящего" Edita получает текст, т.е где отображаеться URL.


просто панк   (2002-08-07 02:46:00) [3]

2 rhf Панки ХОЙ!...всё просто супер работает...спасибо за помощь!!


rhf   (2002-08-06 03:41:00) [4]

2 Rasa, вот только речь идет о тексте из любого окна у которого в данный момент фокус ввода :) это и есть самое интересное :)

и думаю через getFocus и подключение потоков проще всего получить нужный хендл... ну а потом уж WM_GETTEXT Ж:)


Rasa   (2002-08-06 03:02:00) [5]

...тут кэшно, не Edit, а memo, но думаю, разберешься
function GetWindText(AHandle: THandle): String;
var
cb : DWord;
begin
cb := SendMessage(AHandle, WM_GETTEXTLENGTH, 0, 0);
SetLength(Result, cb);
if cb > 0 then
SendMessage(AHandle, WM_GETTEXT, cb+1, LParam(@Result[1]));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
AHandle: THandle;
begin
AHandle := FindWindow("Notepad", nil);
Win32Check(AHandle <> 0);
AHandle := FindWindowEx(AHandle, 0, "Edit", nil);
Win32Check(AHandle <> 0);
Memo1.Text := GetWindText(AHandle);
end;


rhf   (2002-08-06 01:54:00) [6]

что-то типо этого........


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;


ЗЫ панки ХОЙ !!!


Наверх

Титульная страница Поиск, карта сайта Написать письмо