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

Вниз

handle controlов в чужой программе   Найти похожие ветки 

 
chips   (2002-11-21 12:52) [0]

Можно ли получить список всех контролов в чужом окне и их handle ? , заранее спасибо за намеки...


 
Song ©   (2002-11-21 12:56) [1]

GetWindow()/EnumChildWindows()


 
Ru ©   (2002-11-21 13:01) [2]

FindWindow, FindWindowEx - тоже не плохо


 
Игорь Шевченко ©   (2002-11-21 13:05) [3]

Ru © (21.11.02 13:01)

Плохо. Даже очень плохо.

Автору: откройте страшную тайну, плз. Зачем надо регулярно работать с чужими программами, с кнопками, контролами, пунктами меню и т.д. Что за задачи такие интересные вы решаете ?

Поделитесь, плз


 
Ru ©   (2002-11-21 13:22) [4]

>Игорь Шевченко © (21.11.02 13:05)

у меня очень даже хорошо, имею необходиму программу как мне надо.

>Зачем надо регулярно работать с чужими программами, с

лично мне надо было получать данные из чужой проги - одна прога очень неплохо их обрабатывала.
Вообще всем желающим научится с чужими прогами играться есть на Королевстве дельфи пару статеек.


 
Игорь Шевченко ©   (2002-11-21 13:50) [5]

Ru © (21.11.02 13:22)

Список всех контролов по FindWindow ? Поделись, это очень интересно...


> Вообще всем желающим научится с чужими прогами играться
>


Нахрена ?
Сдается мне, что все вопросы такого рода направлены на выяснение способов сделать кому-то пакость...


 
Ru ©   (2002-11-21 14:22) [6]

ParentHandle:=FindWindow(nil,NameParentWindow);
ChildHandle:=FindWindowEx(ParentHandle,nil,nil,nil);
...
ChildHandle:=FindWindowEx(ParentHandle,nil,ChildHandle,nil);


 
Игорь Шевченко ©   (2002-11-21 14:30) [7]

Ru © (21.11.02 14:22)

До EnumWindows и GetWindow современная наука разумеется не дошла...


 
cdadmitriy ©   (2002-11-21 15:04) [8]

Все ОЧЕНЬ просто ТЕКСТ не причесон но работает

function GetTextMy(wnd:hwnd):string;
var p:array [0..256] of char;
begin
GetWindowText(wnd,p,255); result:=strpas(p);
end;


function GetMyData(wnd:hwnd):string;
var p:array [0..256] of char;
begin
SendMessage(wnd, WM_GETTEXT, Sizeof(p),Integer(@p));
result:=strpas(p);
end;

function EnumChildProc(h : hWnd; lParam : LongInt): BOOL; stdcall;
Var lpBuffer : PChar;
begin
result:=true;
if (h=0) then Exit;
GetMem(lpBuffer, 255);

try

if GetClassName(h, lpBuffer, 255) > 0 then
Form1.RichEdit1.Lines.Add("=Class={"+StrPas(lpBuffer)+"}=Control={"+GetTextMy(h)+"}=data={"+GetMyData(h)+"}");

finally
FreeMem(lpBuffer, sizeof(lpBuffer^));
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var INP:hwnd;
begin
RichEdit1.Lines.Clear;
INP:=FindWindow(nil, PChar(Edit3.Text));
EnumChildWindows(INP,@EnumChildProc,0);
end;


 
cdadmitriy ©   (2002-11-21 15:07) [9]

Далее зная ClassName посылаешь текст (WM_SETTEXT)


 
Игорь Шевченко ©   (2002-11-21 15:10) [10]

cdadmitriy © (21.11.02 15:04)

В огороде бузина...


 
cdadmitriy ©   (2002-11-21 15:24) [11]

> Игорь Шевченко © В огороде бузина...

может и бузина но работает а делать ПРОЭКТ нет времени
и желания


 
cdadmitriy ©   (2002-11-21 15:29) [12]

И можно писать (write) на опреленные Control менять
их названия и вообще Я думаю ВСЕ что хочешь


 
chips   (2002-11-21 18:14) [13]

Огромные пасибушки , особая благодарность cdaDmitriy ,
если бы импортные программисты были более отзывчивы на переделку своих программ типа "without support....,...AS IS.."
и т.п. ,я бы остался без работы...



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

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

Наверх




Память: 0.49 MB
Время: 0.01 c
1-24961
sndanil
2002-12-26 19:05
2003.01.09
ListBox


4-25137
Griffin
2002-11-18 22:37
2003.01.09
Передача сообщений от мыши другому приложению


1-24833
Начинающий програмер
2002-12-27 13:13
2003.01.09
2 вопроса


3-24823
drpass
2002-12-14 21:44
2003.01.09
Баг в IBExpress, или я чего-то не знаю?


7-25111
vidiv
2002-10-15 14:34
2003.01.09
MultiCast для NMUPD