Форум: "WinAPI";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c