Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2009, 14:44   #1
Slonnn
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 14
По умолчанию Проблемы с FindWindowEx

Здравтвуйте, у меня какие-то проблемы с функцией FindWindowEx, не могу добраться до нужного дочернего окна сторонней программы. Добирается до первого дочернего окна, а потом возвращает ноль(((

Мне нужно добраться до TNewCaption Fruity Scratcher (Master) (см. рисунок)

Текст программы:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  W1,W2,W3: HWND;
  begin

  W1 := FindWindow('TFruityLoopsMainForm', 'FL Studio');
  if W1 <> 0 then
  ShowMessage('Найдено главное окно')
  else
  ShowMessage('Не найдено главное окно');

  W2 := FindWindowEx(W1, 0, 'TWPControl', '');
  if W2 <> 0 then
  ShowMessage('Найдено первое дочернее окно')
  else
  ShowMessage('Не найдено первое дочернее окно');

  W3 := FindWindowEx(W2, 0, 'TPluginForm', 'Fruity Scratcher (Master)');
  if W3 <> 0 then
  ShowMessage('Найдено 2-е дочернее окно')
  else
  ShowMessage('Не найдено 2-е дочернее окно');
  
end;
Вот дерево окон.
Изображения
Тип файла: jpg пример.jpg (38.9 Кб, 241 просмотров)
Slonnn вне форума Ответить с цитированием
Старый 13.02.2009, 15:02   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

http://programmersforum.ru/showthrea...t=FindWindowEx
http://programmersforum.ru/showthrea...t=FindWindowEx
и так далее...
К вашему сведению, на форуме есть поиск. Достаточно ввести в строку поиска "FindWindowEx" и будете иметь доступ ко всем случаям обсуждения этой функции.
mihali4 вне форума Ответить с цитированием
Старый 13.02.2009, 15:15   #3
Slonnn
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 14
По умолчанию

Я искал, кстати, но ответа не нашёл.
Slonnn вне форума Ответить с цитированием
Старый 13.02.2009, 16:12   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Я бы, например, первым делом перебрал бы все компоненты на 'TPluginForm' и среди них искал бы нужный.
Дело в том (как мне кажется), что судя по приведенной картинке ваш 'TPluginForm' имеет капшен 'Fruity Scratcher (Master)'. И именно поэтому попытка W3 := FindWindowEx(W2, 0, 'TPluginForm', 'Fruity Scratcher (Master)'); не дает результата...
mihali4 вне форума Ответить с цитированием
Старый 13.02.2009, 18:45   #5
Slonnn
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 14
По умолчанию

Не понял вас...
Так я же и говорю что на 'TPluginForm' он выдаёт ноль. Как я могу перебрать его элементы, если я даже не могу до него добраться?
Slonnn вне форума Ответить с цитированием
Старый 13.02.2009, 20:05   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Значит, то же самое с последним найденным окном.
Вы бы скриншот самой программы привели. С дочками, естественно.
mihali4 вне форума Ответить с цитированием
Старый 13.02.2009, 21:03   #7
Slonnn
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 14
По умолчанию

Вот скрин.

и? что можете сказать?

всё, разобрался сам, посидев 3 часа в поисковике.
Изображения
Тип файла: jpg пример2.jpg (76.2 Кб, 208 просмотров)

Последний раз редактировалось Stilet; 06.08.2011 в 11:03.
Slonnn вне форума Ответить с цитированием
Старый 15.02.2009, 02:23   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
всё, разобрался сам
Так может расскажешь?

Кто-нибудь будет искать по форуму, найдёт эту тему - и всё что он узнает, то что ты-таки разобрался...

И снова будут темы одинаковые плодить...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 15.02.2009, 02:42   #9
Slonnn
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 14
По умолчанию

Мне нужно было добраться до TNewCaption

Код:
W1 := FindWindow('TFruityLoopsMainForm', 'FL Studio');
  if W1 <> 0 then
  ShowMessage('Найдено главное окно')
  else
  ShowMessage('Не найдено главное окно');

  W2 := FindWindowEx(W1, 0, 'TWPControl', '');
  if W2 <> 0 then
  ShowMessage('Найдено первое дочернее окно') else ShowMessage('Не найдено первое дочернее окно');

  W3 := FindWindowEx(W1, W2, 'TWPControl', nil);
  if W3 <> 0 then
  ShowMessage('Найдено 2-е дочернее окно') else ShowMessage('Не найдено 2-е дочернее окно');

  W4 := FindWindowEx(W1, W3, 'TWPControl', nil);
  if W4 <> 0 then
  ShowMessage('Найдено 3-е дочернее окно') else ShowMessage('Не найдено 3-е дочернее окно');

  W5 := FindWindowEx(W4, 0, 'TPluginForm', 'Fruity Scratcher (Master)');
  if W5 <> 0 then
  ShowMessage('Найдено 4-е дочернее окно') else ShowMessage('Не найдено 4-е дочернее окно');

  W6 := FindWindowEx(W5, 0, 'TNewCaption', 'Fruity Scratcher (Master)');
  if W6 <> 0 then
  ShowMessage('Fruity Scratcher запущен') else ShowMessage('Не запущен Fruity Scratcher!!!');
Чтобы не пладить новую тему, спрошу тут, т.к. это тоже касаемо FindWindowEx.

Не могу сделать активным найденное окно сторонней программы. Главное окно сделал активным так:

BringWindowToTop(W1);
где W1:HWND

Дочернее ни в какую.

Суть такая: при нажатии на запрограммированные горячие кнопки нужно сделать активной саму стороннюю программу, если она свёрнута, и открыть её дочернее окно.
Всё по тем же рисункам что и выше.

Последний раз редактировалось Stilet; 06.08.2011 в 11:14.
Slonnn вне форума Ответить с цитированием
Старый 16.02.2009, 01:09   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А если через ShowWindow(W6, SW_SHOW) ? SW_SHOWNORMAL ?

Последний раз редактировалось mihali4; 16.02.2009 в 01:20.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с IE xakzona Помощь студентам 1 16.12.2008 21:53
Проблемы с запуском Черничный PHP 11 26.11.2008 16:21
Проблемы с подключением Катрина БД в Delphi 3 19.05.2008 00:57
проблемы со строками MAD Помощь студентам 1 23.12.2007 17:31
проблемы с графикой joker Win Api 9 01.12.2007 18:32