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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2019, 18:30   #1
denis76560
Форумчанин
 
Регистрация: 13.01.2010
Сообщений: 121
По умолчанию Узнать, активна ли кнопка ?

Здравствуйте, нужно контроллировать состояние кнопки в чужом приложении (enabled, disabled).
Для нажатия кнопки использую следующий код:
Код:
if FindWindow(nil, 'Form1') <>0 then begin 
w_handle:= FindWindow(nil, 'Form1'); //окно с именем ABC
b_handle:= FindWindowEx(w_handle, 0, nil, 'Кредиты'); {у него кнопка Open}
SendMessage(b_handle, wm_LButtondown, 0, 0);{посылаем кнопке события нажатия левой кнопки мыши}
SendMessage(b_handle, wm_LButtonUp, 0, 0);{и отпускание ее}
с ним проблем нет.
Зачем мне это нужно ? Единственный вариант проверить закончила ли программа работу - проверить состояние кнопки, т.к. никаких мессаджей и прочего прога не выдает, это остается единственным вариантом.
Можно конечно, еще узнать закончила ли программа задание по тексту в Label, но на просторах интернета только жесткие хардкорные предложения в том числе с применением OCR и других велосипедов и плясок с бубном, причем везде только рассуждения, готовых вариантов нет. OCR использовать не хочу, так как это не кошерно.
Всем откликнувшимся спасибо.

В хэлпе нашел TB_ISBUTTONENABLED , ноне знаю как применить и подойдет ли оно (судя по названию вроде оно и есть)

Пробовал так:
Код:
var 
w_handle:integer;
b_handle:integer;
begin 
if FindWindow(nil, 'Form1') <>0 then begin
w_handle:= FindWindow(nil, 'Form1'); //окно с именем ABC
b_handle:= FindWindowEx(w_handle, 0, nil, 'Кредиты'); {у него кнопка Open}
if SendMessage(b_handle,TB_ISBUTTONENABLED,0,0)=0 then ShowMessage('123');
end;
end;
Результат в обоих случаях одинаковый

Последний раз редактировалось denis76560; 21.03.2019 в 18:53.
denis76560 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать что клавиатура активна SLAUR Общие вопросы Delphi 5 13.01.2016 12:57
Как узнать нажата ли кнопка? Ragnarek45 Общие вопросы Delphi 11 07.12.2010 14:53
как узнать, нажата ли кнопка мыши? Juffin Общие вопросы Delphi 1 20.05.2010 20:16
Как узнать была ли нажата кнопка? SanSanblch Win Api 3 20.12.2009 01:15