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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2014, 09:49   #1
MaxXx_1
Новичок
Джуниор
 
Регистрация: 05.11.2014
Сообщений: 6
По умолчанию Как победить чужой SpeedButton

В общем надо нажать на SpeedButton в чужом окне пока оно не активно или свернуто в трее. Ну или хотя бы свернуто.
Читал кучу тем, оказывается победить его не так уж и легко и нажать програмно нельзя из за отсутствия Хендла.
Нашел вот эту темку: http://www.programmersforum.ru/showthread.php?t=21535

Пробую реализовать просто отправку шелчка и в принципе не получается даже на простом поле в Паинте тыкнуть с помощью этих функций.
Помогите как быть?
Вот мой код для паинта:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
w1, w2:THandle;
begin
w1 := FindWindow('MSPaintApp', Безымянный - Paint');
if W1 <> 0 then
ShowMessage('Нашел MSPaintApp')
else
ShowMessage('Нету MSPaintApp');

W2 := FindWindowEx(W1, 0, 'Afx:00000000FF4C0000:0:0000000000010003:0000000000000010:0000000000000000','');
if W2 <> 0 then
begin
PostMessage(w2, WM_LBUTTONDOWN, 0, MAKELPARAM(300,300));
PostMessage(w2, WM_LBUTTONUP, 0, MAKELPARAM(300,300));
ShowMessage('Нашел рисовалку');
end
else
ShowMessage('Не нашел рисовалку');
end;
Он выдает что нашел рисовалку, но точка в паинте не рисуется.
Пробовал меня w2 на w1. Не рисует и всё. Пробовал в развернутом Паинте тоже не тыкает. Что не так? Помогите осилить нажатие на СпидБатонку.




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.11.2014 в 10:03.
MaxXx_1 вне форума Ответить с цитированием
Старый 05.11.2014, 10:25   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Бесполезно отправлять сообщения в сворнутое/скрытое окно, совсем бесполезно.
Нельзя и кликнуть туда же.

Всякие PaintBox'ы не будут работать без фокуса.

Последний раз редактировалось Человек_Борща; 05.11.2014 в 10:27.
Человек_Борща вне форума Ответить с цитированием
Старый 05.11.2014, 10:29   #3
MaxXx_1
Новичок
Джуниор
 
Регистрация: 05.11.2014
Сообщений: 6
По умолчанию

Можно. Я отправляю в свернутое окно сообщение с нажатием на баттон Х, но на Спид Баттон не могу.
В свернутое на баттон отправляется.
MaxXx_1 вне форума Ответить с цитированием
Старый 05.11.2014, 10:42   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
В свернутое на баттон отправляется.
Круто. А результат есть? Окошно вызваемоеэтой кнопкой открывается?
Если нет, значит не обрабатывается.
Человек_Борща вне форума Ответить с цитированием
Старый 05.11.2014, 10:43   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я отправлял нажатие на speedbutton в скрытом окне, вроде не было особых проблем.
Может координаты неправильные?
Или вместо 0 что-то указать надо? У меня было MK_LBUTTON.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.11.2014, 11:18   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Я вам о том говорю, что сообщение будет доходить до окна, но обрабатываться как вы ожидаете - не будут.

Так после отправки сообщений куда-угодно внутрь свернутого окна - что-нибудь происходит?
Человек_Борща вне форума Ответить с цитированием
Старый 05.11.2014, 11:22   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я-то тут причем? У меня все отправлялось и обрабатывалось в скрытом (SW_HIDE) окне: и SpeedButton'ы и Button'ы.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 05.11.2014 в 11:24.
Alex11223 вне форума Ответить с цитированием
Старый 05.11.2014, 12:15   #8
MaxXx_1
Новичок
Джуниор
 
Регистрация: 05.11.2014
Сообщений: 6
По умолчанию

Конечно происходит. ПРоисходит нажатие на нужную мне кнопку, но на нажатие на SpeedButton не происходит.
Алекс помогите пожалуйста с данной проблемой!
Попробовал MK тоже не нажимается.
Помогите пожалуйста.
MaxXx_1 вне форума Ответить с цитированием
Старый 05.11.2014, 12:24   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Чем я помогу? Проверяйте координаты (попробуйте получить координаты какого-нибудь элемента рядом с кнопкой, GetWindowRect). Попробуйте сначала на не скрытом и не свернутом окне.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 05.11.2014 в 12:27.
Alex11223 вне форума Ответить с цитированием
Старый 05.11.2014, 12:26   #10
MaxXx_1
Новичок
Джуниор
 
Регистрация: 05.11.2014
Сообщений: 6
По умолчанию

Пробовал все варианты уже =)
Программа WPF 6.69.
Там на любой форму куча СпидБатонов. Подскажите как нажать на них.
MaxXx_1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как победить? sdr1 Общие вопросы Delphi 14 06.10.2014 17:29
Загрузка функции из dll, как победить RunTime Winexcel Общие вопросы Delphi 4 01.07.2014 13:40
страница влево уползает, как победить? booratino HTML и CSS 6 20.03.2012 15:17
как перехватить чужой процесс Assemblerru Win Api 8 28.09.2010 20:07
SpeedButton как вкладки Zo0M Общие вопросы Delphi 0 20.02.2010 12:25