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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2008, 23:37   #1
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
Вопрос FindWindow('TMainForm',nil) а дальше куча одноименных кнопок

Доброго времени суток, уважаемые мастера
у меня вот такая вот проблемма . Имеется окно в нем есть панель на которой расположены кнопки с
рисунками, мне необхадимо отправить сообщение именно нужной мне, пожалуйста помогите разобраться и по возможности поподробней

FindWindowEx(h5, HWND(0),'TButton', 'Выход');
FindWindowEx(h6, HWND(0),'TButton', 'Выход');
FindWindowEx(h7, HWND(0),'TButton', 'Выход');
FindWindowEx(h8, HWND(0),'TButton', 'Выход');
FindWindowEx(h9, HWND(0),'TButton', 'Выход');


Заранее благодарен
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся
Стелс вне форума Ответить с цитированием
Старый 20.10.2008, 00:10   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

http://www.programmersforum.ru/showthread.php?t=23366
http://www.programmersforum.ru/showthread.php?t=994
http://www.programmersforum.ru/showthread.php?t=25880
Вообще, на тему "FindWindow" было много обсуждений, так что, если вам интересно, сделайте поиск по форуму по этой фразе...
mihali4 вне форума Ответить с цитированием
Старый 20.10.2008, 07:07   #3
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

если быть не столь поверхностным, то постораюс наглядней

TMainForm
|
|
*TPanel1
|
|
**TButton1 "Выход"
|
|
**TButton2 "Выход"
|
|
**TButton3 "Выход" < - мне нужно передать сообщение этой кнопке
|
|
**TButton4 "Выход"
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся

Последний раз редактировалось Стелс; 20.10.2008 в 07:10. Причина: поторапился
Стелс вне форума Ответить с цитированием
Старый 20.10.2008, 13:52   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
спасибо ,что не оставили тему без внимания ,но там нет ответов на поставленный мною вопрос
Ну почему же столь категорично?
Был, например, вариант поиска на чужой форме одного из нескольких эдитов и засылка в него нужного текста...
Что эдит, что баттон - оба контролы, делайте по аналогии и будет вам успех...
mihali4 вне форума Ответить с цитированием
Старый 22.10.2008, 06:18   #5
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

Ну честное слово не лень ) у меня интернет не так уж и давно ,а на форуме я вообще впервые зарегистрирован ! Так что может я как то с монитора информацию воспринимаю ,как то не так ,как с бумаги,вот что заметил ,так то что прочитаеш с книги усваивается лучше чем с экрана монитора)
Гдето нашел информацию ,что ,как бы это сделать (буттон нажать) совсем не реально так ,как я хочу, а типо только если через задание координат положения графического манипулятора(мыши)
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся

Последний раз редактировалось Стелс; 22.10.2008 в 06:36.
Стелс вне форума Ответить с цитированием
Старый 22.10.2008, 07:05   #6
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  h1,h2: hwnd;

begin
//Button1.Caption :='Спрятать';
 Button2.Caption :='';
 Button3.Caption :='';
  h1 := FindWindow('TForm1',nil);
  h2 := FindWindowEx(h1, HHOOK(0),'TButton', nil);
    if Button1.Caption = 'Спрятать' then
     begin
    ShowWindow(h2, SW_HIDE); 
    Button1.Caption := 'Показать'
    end
     else
      begin
      Button1.Caption := 'Спрятать';
    ShowWindow(h2, SW_SHOW);
    end;
end;
в данном примере у меня событие происходит с Button3, а как добраться до Button2. ????
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся

Последний раз редактировалось rpy3uH; 22.10.2008 в 16:18.
Стелс вне форума Ответить с цитированием
Старый 22.10.2008, 07:39   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Странно... Вроде бы вчера давал пост с результатами поиска по вашей задаче... Куда он делся?
Повторюсь (один в один ваша задача):
http://www.programmersforum.ru/showt...ght=findwindow
Однако, странно все это... Полтергейст, что ли, на форуме завелся?
mihali4 вне форума Ответить с цитированием
Старый 22.10.2008, 08:56   #8
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Повторюсь (один в один ваша задача):
http://www.programmersforum.ru/showt...ght=findwindow
Цитата:
Сообщение от mihali4 Посмотреть сообщение
procedure TForm1.Button1Click(Sender: TObject);
var
h1, h2: hwnd;
begin
h1 := FindWindow('tform2', nil);
h2 := FindWindowEx(h1, 0, 'TBitBtn', '&No');
SendMessage(h2, BM_CLICK, 0, 0);
end;

// Установка или снятие флажка:

procedure TForm1.Button2Click(Sender: TObject);
var
h1, h2: hwnd;
begin
h1 := FindWindow('tform2', nil);
h2 := FindWindowEx(h1, 0, 'TCheckBox', 'Флажок');
SendMessage(h2, BM_SetCheck, 1, 0);
end;



procedure TForm1.Button1Click(Sender: TObject);
var
h1, h2: hwnd;
begin
h1 := FindWindow(nil, 'Connect altair');
h2 := FindWindowEx(h1, 0, 'TButton', 'Connect');
// SendMessage(h2, BM_CLICK, 0, 0);
showmessage(inttostr(h2));
end;


procedure TForm1.Button1Click(Sender: TObject);
var h1,h2:HWND;
begin
h1:=FindWindow(nil,'Connect altair');
h2:=FindWindowEx(h1,0,'Button','Connect');
SendMessage(h2,WM_LBUTTONDOWN,1,1);
SendMessage(h2,WM_LBUTTONUP,1,1);
//SendMessage(h2,WM_LBUTTONDOWN,1,1);
//SendMessage(h2,WM_LBUTTONUP,1,1);
end;


В данных примерах кнопка ищется по его "Caption" вся загвоздка втом , что "Caption" у меня пустая строка так то я б и не постил на эту тему
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся

Последний раз редактировалось rpy3uH; 30.10.2008 в 08:09.
Стелс вне форума Ответить с цитированием
Старый 22.10.2008, 09:07   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Увы, как видно из определения функции:
Цитата:
The FindWindowEx function retrieves the handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the given child window.

HWND FindWindowEx(
HWND hwndParent, // handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name
);
вы должны указать либо хэндл, либо имя...
Цитата:
вся загвоздка втом , что "Caption" у меня пустая строка
А почему??? А кто мешает присвоить хотя бы пробел??? (Если это - тоже ваша разработка.)

Последний раз редактировалось mihali4; 22.10.2008 в 09:21.
mihali4 вне форума Ответить с цитированием
Старый 22.10.2008, 09:12   #10
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Увы, как видно из определения функции:

вы должны указать либо хэндл, либо имя...

А почему??? А кто мешает присвоить хотя бы пробел???
ааа ну если так то ,конечно, но это же изменение кода чужой программы ))
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся
Стелс вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FindWindow Comer_Jus Win Api 7 29.11.2008 10:17
Куча вопросов vilini Работа с сетью в Delphi 1 18.08.2008 11:56
FindWindow не нашел окна, а ShellExecute возвращает ERROR_PATH_NOT_FOUND malor Win Api 2 19.07.2007 15:15
Вопрос про функцию FindWindow Dromok Общие вопросы Delphi 3 12.02.2007 23:00