IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> поиск компонентов
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Ищу из другого окна все компоненты (в мемо закинуть их класс хотябы) smile.gif
FindWindowEx ищет только по классу и находит только одно окно. Делаю так
function enumproc(wnd:hwnd; lparam:lparam):BOOL; stdcall;
var
s:pchar;
begin
GetClassName(wnd,s,20);
form3.Memo1.Lines.Add(s)
end;


procedure TForm3.Button1Click(Sender: TObject);
var
wnd,wnd1,wnd2:hwnd;
begin
memo1.Clear;

EnumChildWindows(FindWindow(nil,'Form1'),@enumproc,0) //это форма другого приложения с кнопкой и мемо
end;
Но вылетает с ошибкой. Что не так?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Что не так?
Вот это:
function enumproc(wnd:hwnd; lparam:lparam):BOOL; stdcall;
var
s: array[0 .. 255] of char; // <--- раз
begin
GetClassName(wnd, s, sizeof(s));
form3.Memo1.Lines.Add(s);
result := true; // <--- два
end;
Если не вернуть True, то после первого же обработанного элемента перечисление прекратится...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
result := true; // <--- два
Спасибо. Думал выведет TMemo и TButton, а там список большуший. Буду условие ставить для нужных типов

Добавлено через 5 мин.
А есть функция которая сравнивает строку с несколькими строками?

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






smile.gif Напиши... Запихай строки в TStringList, и сравнивай IndexOf проверяемой строки с (-1)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


сделал smile.gif
А как узнать что храниться в мемо, стоит ли галочка на чекбоксе. Что еще можно из них вытащить?

Добавлено через 3 мин.
и если у меня 2 попап меню, как их найти? getmenu/getpoapmenu найдут первое меню, а через EnumChildWindows оно не находиться


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
А как узнать что храниться в мемо, стоит ли галочка на чекбоксе. Что еще можно из них вытащить?
Из Edit-а можешь вытащить сам текст (GetWindowText), насколько я помню, TMemo этого тебе просто так не позволит сделать. Что касается Чекбокса - то пошли ему сообщение BM_GETCHECK, если в ответ получишь BST_CHECKED - значит, есть галочка, если BST_UNCHECKED - значит нету. Иначе получишь BST_INDETERMINATE...

В общем, ходи в MSDN и смотри информацию. о сообщениях Windows, и о стандартных контролах...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


ок, спасиб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.04.2024 5:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name