![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вопрос по левым 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;
ЗЫ панки ХОЙ !!!