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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2012, 09:41   #1
cardon
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 13
По умолчанию Клик мыши в чужом приложении(Delphi)

Добрый день.
Моя задача в приложении перейти на вкладку Авто и кликнуть на Запустить


Пытаюсь сделать это так
Код:
procedure TAutoRunners.btn1Click(Sender: TObject);
var Hnd, HndBtn:HWND;
begin
Hnd:=FindWindow(nil,'FreeTMGameBot 0.1.2.2');
  if Hnd <> 0 then
  ShowMessage('Найдено главное окно')
  else
  ShowMessage('Не найдено главное окно');
  HndBtn := FindWindowEx(Hnd, 0, 'TabControl', 'Авто');
  if HndBtn <> 0 then
  ShowMessage('Найдено первое дочернее окно')
  else
  ShowMessage('Не найдено первое дочернее окно');
//HndBtn:=FindWindowEx(Hnd,0,'Button','Авто');
SendMessage (HndBtn, BM_Click, 0, 0);
end;
Главное окно находит а дочернее не хочет.

Выкладываю часть исходного кода приложения где необходимо кликнуть на эту кнопку и саму программу.
http://www.sendspace.com/file/se8w4b
cardon вне форума Ответить с цитированием
Старый 15.08.2012, 09:48   #2
hyxogen
Новичок
Джуниор
 
Регистрация: 15.08.2012
Сообщений: 2
По умолчанию

Если найдешь координаты окна, то библиотека AutiItX в помощь!
Почитай тут http://www.script-coding.com/AutiItX.html
hyxogen вне форума Ответить с цитированием
Старый 15.08.2012, 09:49   #3
cardon
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от hyxogen Посмотреть сообщение
Если найдешь координаты окна, то библиотека AutiItX в помощь!
Почитай тут http://www.script-coding.com/AutiItX.html
Да зачем мне координаты окна искать если есть исходник приложения где мне необходимо кликать) Просто надо понять что следует дальше искать после поиск главного окна.
cardon вне форума Ответить с цитированием
Старый 15.08.2012, 10:38   #4
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

если есть исходник то зачем искать окно? сделай просто например
Код:
button1.click;
fbus вне форума Ответить с цитированием
Старый 15.08.2012, 11:56   #5
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

Если в Visual C поддерживается такое, то
Код:
btnRunBot.click(self);
ну или простеньким AutoIT скриптом, готовый ксрипт.ехе положить рядом с FreeTMGameBot.exe
Код:
Opt("WinWaitDelay",100)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)


Run ("FreeTMGameBot.exe")
_WinWaitActivate("FreeTMGameBot 0.1.2.2","")
sleep(1000)
Send("{RIGHT}{TAB}{ENTER}")


Func _WinWaitActivate($title,$text,$timeout=0)
	WinWait($title,$text,$timeout)
	If Not WinActive($title,$text) Then WinActivate($title,$text)
	WinWaitActive($title,$text,$timeout)
EndFunc

Последний раз редактировалось Noor; 15.08.2012 в 13:25.
Noor вне форума Ответить с цитированием
Старый 15.08.2012, 17:09   #6
cardon
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 13
По умолчанию

Вы не правильно поняли мне надо из приложения на Delphi кликнуть на кнопку в приложении написанном на С. Исходник приложения на С я привел выше. Очень надо) Пока сам не дошел почему TabControl он не находит, хотя вроде следующим идет именно он.

Последний раз редактировалось cardon; 15.08.2012 в 17:12.
cardon вне форума Ответить с цитированием
Старый 15.08.2012, 17:44   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от cardon Посмотреть сообщение
Пока сам не дошел почему TabControl он не находит, хотя вроде следующим идет именно он.
Потому что класс tab окна не "TabControl", eсли только это системное таб окно. Возьмите Spy++ или другую spy утилиту и посмотрите класс окна (или посмотрите в С изходнике).
waleri вне форума Ответить с цитированием
Старый 15.08.2012, 18:34   #8
cardon
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Потому что класс tab окна не "TabControl", eсли только это системное таб окно. Возьмите Spy++ или другую spy утилиту и посмотрите класс окна (или посмотрите в С изходнике).
Winsperctor называет его "WindowsForms10.SysTabControl32.app .0.378734a"
Пробую обратиться к SysTabControl32 тоже самое не находит.
cardon вне форума Ответить с цитированием
Старый 15.08.2012, 18:42   #9
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от cardon Посмотреть сообщение
"WindowsForms10.SysTabControl32.app .0.378734a"
Называться оно может немного по разному. Пробуй так
Код:
var
  h1,h2,h3,h4:HWND;
begin
  h1:=FindWindow(nil, PChar('FreeTMGameBot 0.1.2.2'));
  h2:=FindWindowEx(h1,0,nil, PChar(''));
  h3:=FindWindowEx(h2,0,nil, PChar('Авто'));
  h4:=FindWindowEx(h3,0,nil, PChar('Запустить бота'));
  SendMessage (h4, BM_Click, 0, 0);
end;
Программа должна быть запущена и открыта на вкладке АВТО
eoln вне форума Ответить с цитированием
Старый 15.08.2012, 18:58   #10
cardon
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Называться оно может немного по разному. Пробуй так
Код:
var
  h1,h2,h3,h4:HWND;
begin
  h1:=FindWindow(nil, PChar('FreeTMGameBot 0.1.2.2'));
  h2:=FindWindowEx(h1,0,nil, PChar(''));
  h3:=FindWindowEx(h2,0,nil, PChar('Авто'));
  h4:=FindWindowEx(h3,0,nil, PChar('Запустить бота'));
  SendMessage (h4, BM_Click, 0, 0);
end;
Программа должна быть запущена и открыта на вкладке АВТО
Огромнейшее спасибо работает. А не подскажите как так же перейти на вкладку Авто?
cardon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клик в чужом приложении SunnyDay Общие вопросы Delphi 5 31.10.2011 15:12
Нажатие кнопок мыши в чужом приложении Der_G()RuNu(h Работа с сетью в Delphi 16 25.05.2011 13:09
Клик мыши на объекты в Delphi MeGAAkrO Помощь студентам 3 10.04.2010 13:29
TСhart, клик мыши и координаты XY, Определение координат оси при клике мыши Aravild Компоненты Delphi 1 31.01.2009 16:28