Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 91
Рейтинг: 0
#1: 2018-08-15 13:14:34 ЛС | профиль | цитата
Здравствуйте!

Подскажите пожалуйста. Как из Hiasm нажать кнопку стороннего приложения. Например калькулятора. Как узнать какое сообщение нужно посылать окну элементом SendMessage для конкретной кнопки? Конкретно, не могу нажать кнопку Autorepeat в приложении CopyDR.exe (чтобы она стала активной необходимо добавить одно задание).
карма: 0

0
файлы: 1CopyDR.rar [186.2KB] [345]
vip
#1.1контекстная реклама от партнеров
Ответов: 196
Рейтинг: 43
#2: 2018-08-15 20:31:54 ЛС | профиль | цитата
wvlas, вначале найти хендл окна, затем хендл кнопки и отправить сообщение BM_CLICK

Редактировалось 1 раз(а), последний 2018-08-15 20:33:42
карма: 2

0
Ответов: 91
Рейтинг: 0
#3: 2018-08-16 05:30:58 ЛС | профиль | цитата
Получается если только управлять кнопками окна программы созданной в Hiasm. А калькулятором например не могу.


Add(MainForm,16507109,637,371)
{
Width=686
Height=506
Caption="Form1"
}
Add(Button,14922334,637,462)
{
Left=60
Top=60
Caption="Find!"
link(onClick,7134113:doFind,[])
}
Add(FindWindow,7134113,700,462)
{
ClassName="obj_Form"
Caption="Калькулятор Плюс"
link(onFind,12542355:doFindChild,[])
}
Add(FindWindow,12542355,756,455)
{
ClassName="obj_BUTTON"
Caption="CE"
link(onFind,6563201:doSendMessage,[])
}
Add(SendMessage,6563201,819,455)
{
WParam=1
LParam=1
Point(Message)
link(Handle,12542355:Handle,[(825,443)(797,443)(797,499)(762,499)])
link(Message,1542185:Value,[])
}
Add(Memory,1542185,840,364)
{
Default=Integer(245)
AddHint(45,10,33,13,Default)
}

карма: 0

0
Ответов: 196
Рейтинг: 43
#4: 2018-08-16 05:43:43 ЛС | профиль | цитата
wvlas, Пробуй


Add(WinEnum,690314,329,287)
{
link(onFindWindow,6814419:doCompare,[])
}
Add(Button,3675930,266,287)
{
Left=80
Top=45
link(onClick,690314:doEnum,[])
}
Add(StrMask,6814419,385,287)
{
Mask="CopyDR*"
link(onTrue,13535056:doFindChild,[])
}
Add(FindWindow,13535056,434,287)
{
Caption="Autorepeat"
SkipParam=2
link(onFind,14145821:doSendMessage,[])
link(ParentHandle,690314:Handle,[(440,275)(372,275)(372,324)(335,324)])
}
Add(SendMessage,14145821,483,287)
{
Point(Message)
link(Message,3945192:Var,[])
}
Add(GlobalVar,3945192,504,259)
{
Name="BM_CLICK"
Data=Integer(245)
}

карма: 2

0
Ответов: 91
Рейтинг: 0
#5: 2018-08-16 06:23:40 ЛС | профиль | цитата
Работает!
А почему "BM_CLICK" = 245? Откуда эта цифра 245?
карма: 0

0
Ответов: 321
Рейтинг: 10
#6: 2018-08-16 09:28:03 ЛС | профиль | цитата
wvlas писал(а):
Работает!
А почему "BM_CLICK" = 245? Откуда эта цифра 245?

Если не ошибаюсь, то это код операции.
http://docwiki.embarcadero.com/Libraries/XE2/en/Winapi.Messages
BM_CLICK: Integer = $F5;
f5 (hex) = 245
карма: 1

0
Ответов: 91
Рейтинг: 0
#7: 2018-08-17 05:08:11 ЛС | профиль | цитата
Спасибо за помощь!
карма: 0

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)