Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-24828
white
2002-12-27 11:44
2003.01.09
DispatchMessage?????


14-25055
Cr@sh
2002-12-20 12:10
2003.01.09
Меня загребают....


4-25147
Shuric
2002-11-19 23:04
2003.01.09
Прерывание


1-24914
viper
2002-12-25 16:41
2003.01.09
ComboBox


7-25118
sancho
2002-10-28 19:05
2003.01.09
О часах windows и панели задач...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский