Re: Проблема с получением текста из другого окна.
От: Carc Россия http://www.amlpages.com/home.php
Дата: 02.06.08 13:42
Оценка:
"Answer_i3" <72898@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:2972843@news.rsdn.ru...
> Всем добрый день! У меня стоит задача получить текст коммандной строки автокада. Нашёл окно ком строки посылаю ему сообщение WM_GETTEXT приходит всё кроме 2ух последних строк....
>
> делаю примерно следующие
>
> function GetAcadCmdLine(AcadWnd:HWND):WideString ; stdcall;
> var cmdText:array [0..15999] of Char;//это конечно не красиво.... но пока так
> //***************************************************************
> function EnumChildProc(Wnd:HWND;lParam:LongInt):boolean; stdcall;
> var wndText:array [0..15999] of Char;
> begin
> if lParam<>0 then
> Result:=false
> else
> begin
> //SendMessage(Wnd,WM_GETTEXT,1600,integer(@wndText));
> //if (Pos(' ',AnsiUpperCase(wndText))>0)then
> GetWindowText(Wnd,wndText,255);
> if (AnsiContainsText(wndText,'MountTam')) then
> CommandWnd:=Wnd;
> Result:=true;
> end;
> end;
> //***************************************************************
> begin
> CommandWnd:=0;
> EnumChildWindows(AcadWnd,@EnumChildProc,CommandWnd);
> if CommandWnd<>0 then
> begin
> SendMessage(CommandWnd,WM_GETTEXT,16000,LPARAM(integer(@cmdText)));
> Result:=cmdText;
> end;
> end;
>
> заранее спасибо!!!!
WM_GETTEXT может и не работать через границы процессов. Нужно внедрять DLL в чужой процесс чтобы гарантировано вынуть текст.
Posted via RSDN NNTP Server 2.1 beta
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.