Сейчас на форуме: (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Работа со сторонним приложением
Посл.ответ Сообщение

Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июля 2010 09:57
· Личное сообщение · #1

Есть стороннее приложение написанное на Qt, назовем его Х. Требуется из моего приложения определять доступна ли для нажатия кнопка в программе Х и если доступна то нажать, если не доступна то ждать пока будет доступна и нажать. Через WinSpy++ выяснил что кнопка в программе Х enabled, но нажать на кнопку я всёравно не могу, видать есть какое-то внутреннее свойство у компонента которое определяет доступна кнопка или нет. Я первый раз пытаюсь делать такое, просьба помочь разобраться.

Пока добрался только до хэндла кнопки и знаю как нажимать, с остальным проблемы.

SBW := FindWindowEx(Parent, 0, nil, 'Кнопка');

SendMessage(SBW, WM_LBUTTONDOWN, 0, 0);
SendMessage(SBW, WM_LBUTTONUP, 0, 0);
Пишу на делфи.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 29 июля 2010 12:16 · Поправил: Coderess
· Личное сообщение · #2

Стоит проверять возвращаемый в SBW результат

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июля 2010 12:21 · Поправил: sinys
· Личное сообщение · #3

Coderess
Код проверки есть, кнопка нормально нажимается когда она доступна для нажатия, привел сокращенный код.

Как быть с проверкой доступности для нажатия кнопки?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 29 июля 2010 12:58
· Личное сообщение · #4

IsWindowEnabled?



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июля 2010 13:02
· Личное сообщение · #5

Archer
IsWindowEnabled используется WinSpy++ и эта функция говорит что кнопка доступна, но на самом деле я её нажать не могу, видать какое-то другое свойство.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 29 июля 2010 13:54
· Личное сообщение · #6

Ну давай линк тогда, что ли, гадать не катит.



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июля 2010 14:16
· Личное сообщение · #7

Archer
Ответил в личку.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 29 июля 2010 15:16
· Личное сообщение · #8

Зря в личку, у меня времени не особо много разбираться с этим, а у других может оно быть. Тем более, что эта штука инета хочет. Дзенский вариант-изучать СДК от КТ. Не исключено, что это вообще не на сообщениях, и придётся патчить/инжектить свой код.



Ранг: 40.4 (посетитель), 3thx
Активность: 0.080
Статус: Участник

Создано: 29 июля 2010 15:18
· Личное сообщение · #9

Юзай SendMessage с параметром WM_CLICK.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 29 июля 2010 17:35
· Личное сообщение · #10

ZLOvar
Ты вообще топ читал? В следующий раз сначала читай, потом пости.



Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июля 2010 19:08
· Личное сообщение · #11

Я извиняюсь, что такое КТ? и если можно сразу ссылку на сдк про которое идет речь.




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 29 июля 2010 19:16
· Личное сообщение · #12

Qt SDK for Open Source C++ development on Windows

-----
Следуй за белым кроликом




Ранг: 0.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 июля 2010 10:54
· Личное сообщение · #13

Скачал Qt по ссылке. Создал простенькое приложение: форма и на ней кнопка и другие элементы управления. Так вот ни WinSpy ни TestComplete не смогли найти элементов управления на главном окне. В итоге только хэндл главного окна и больше ничего Защита? Как-то снимается? Может какое-то свойтсво?



Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 30 июля 2010 19:06
· Личное сообщение · #14

Кт использует свои обработчики, проще говоря оно не использует апи. Создай простое приложение с кнопкой и загони его в отладчик и там уже смотри что и как инициализируецо.

-----
xchg dword [eax], eax



 eXeL@B —› Вопросы новичков —› Работа со сторонним приложением
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати