Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.009 c
1-24865
msgipss
2002-12-26 13:59
2003.01.09
А как можно присвоить один типизированный массив другому


1-24839
viper
2002-12-27 13:45
2003.01.09
Ошибка при запуске программы


6-24991
Борис
2002-11-11 13:59
2003.01.09
Помогите передать несколько структур по сети череp Сокеты


3-24786
ramil
2002-12-14 16:24
2003.01.09
Multiple records found but only one expected...


3-24817
Karbo
2002-12-15 17:26
2003.01.09
SQL : вопрос про COUNT( )




   Наверх