Вверх ↑
Этот топик читают: Гость
Ответов: 8930
Рейтинг: 823
#1: 2011-02-03 18:35:22 ЛС | профиль | цитата
Нажимаю с помощью змулятора мышки, танцую с бубном для определения координат и эмулирую нажатие кнопки
------------ Дoбавленo в 17.45:
Но, наверное, можно и нужно просто посылать сообщение, но я не знаю как Кто сможет помочь?
------------ Дoбавленo в 17.45:
Приложены мои попытки нажать кнопки на эмуляторе BASS RECORD TEST.
------------ Дoбавленo в 17.45:
nesco, кстати о птичках: BASS RECORD TEST.exe весит всего 8.5 кБ, записывает звук в формате 24 бит, а его эмуляция
------------ Дoбавленo в 17.45:
внешнего вида на HiAsm весит 80 кБ и ничего не записывает тоже приложил, если заинтересует, выложу исходники на Дельфи.
------------ Дoбавленo в 17.50:
Замучил форум Dilma, может перенести эту .... игру куда-нибудь ещё ?
------------ Дoбавленo в 18.02:
Пойду искать, куда залить
------------ Дoбавленo в 18.25:
Вот здесь залился моментально http://hiasm.com/forum_serv.php?q=56&id=2099
------------ Дoбавленo в 18.35:
Правильнее так:

Add(MainForm,2953706,203,147)
{
link(onCreate,5500533:doFind,[])
}
Add(WinEnum,5500533,252,154)
{
Point(ClassName)
link(onFindWindow,661517:doValue,[])
link(Caption,5788660:Value,[])
}
Add(Memory,5788660,252,105)
{
Default=String(Emulator BASS recording test)
}
Add(StrCatDelim,9613935,448,147)
{
Delimiter="="
link(onStrCatDlm,6416605:doAdd,[])
link(Str1,12580758:Var3,[(454,135)])
}
Add(FindWindow,9349513,406,147)
{
ClassName="bunnon"
SkipParam=2
Point(ChildHandle)
link(onFind,9613935:doStrCatDlm,[])
link(ParentHandle,11451349:Var3,[(412,138)(400,138)(400,199)])
link(Caption,12580758:Var2,[])
}
Add(Memory,661517,308,154)
{
Point(Data)
link(onData,15731157:doEnum,[])
link(Data,5500533:Handle,[(314,142)(296,142)(296,197)(258,197)])
}
Add(StrList,16377807,343,98)
{
Strings=#6:Record|4:Play|4:Save|
}
Add(ArrayEnum,15731157,357,154)
{
link(onItem,9349513:doFindChild,[])
link(Array,16377807:Array,[])
}
Add(GetDataEx,12580758,420,130)
{
Angle=3
link(Data,15731157:Item,[(395,135)(395,194)(363,194)])
}
Add(ListBox,6416605,497,147)
{
Left=150
Top=20
Width=115
Height=140
DataType=1
link(onClick,10291824:doSplit,[])
}
Add(StrPart,10291824,644,154)
{
Char="="
link(onSplit,8086446:doValue,[])
}
Add(PosWindow,3846189,686,217)
{
link(Handle,8086446:Value,[])
}
Add(Memory,8086446,686,154)
{
link(onData,5272093:doCalc,[(730,160)(730,203)(577,203)(577,286)])
}
Add(PosWindow,465927,637,217)
{
link(Handle,11451349:Var2,[(643,210)(314,210)])
}
Add(GetDataEx,11451349,308,194)
{
link(Data,661517:Value,[])
}
Add(MathParse,5272093,637,280)
{
MathStr="%1 + %2 + 20"
ResultType=0
link(onResult,6424027:doCalc,[])
link(X1,465927:CurrentLeft,[])
link(X2,3846189:CurrentLeft,[(650,261)(692,261)])
}
Add(MathParse,6424027,679,280)
{
MathStr="%1 + %2 + 30"
ResultType=0
link(onResult,14786346:doEvent1,[(723,286)(723,321)(561,321)(561,342)])
link(X1,465927:CurrentTop,[(685,255)(650,255)])
link(X2,3846189:CurrentTop,[(692,264)(699,264)])
}
Add(MouseEvent,2248247,665,329)
{
Point(doPosition)
link(Button,7750708:Value,[(671,324)(594,324)])
link(X,5272093:Result,[(678,318)(643,318)])
link(Y,6424027:Result,[])
}
Add(Memory,7750708,588,280)
{
Default=Integer(1)
}
Add(Hub,14786346,567,336)
{
OutCount=4
link(onEvent1,16159695:doValue,[(609,342)(609,377)])
link(onEvent2,2248247:doPosition,[])
link(onEvent3,2248247:doClick,[(623,356)(623,335)])
link(onEvent4,11484004:doTimer,[(599,363)(599,433)])
}
Add(MouseEvent,11941642,665,413)
{
Point(doPosition)
link(X,16159695:Value,[(678,408)(643,408)])
link(Y,2027164:Value,[(685,408)(692,408)])
}
Add(Memory,16159695,637,371)
{
Point(Data)
link(onData,2027164:doValue,[])
link(Data,2248247:MouseX,[(643,366)(671,366)])
}
Add(Memory,2027164,686,371)
{
Point(Data)
link(Data,2248247:MouseY,[(692,366)(678,366)])
}
Add(Timer,11484004,616,427)
{
Interval=50
Enable=1
AutoStop=1
link(onTimer,11941642:doPosition,[])
}
Add(InfoTip,16674079,553,42)
{
Info=#57:Надо заменить этот блок на сообщение элементу управления:|20:1. Выбрать "Line-ln"|25:2. Нажать кнопку "Record"|39:3. Нажать кнопку "Stop" (бывший Record)|23:4. Нажать кнопку "Save"|
Width=225
Height=459
}

карма: 19

0
Ответов: 3349
Рейтинг: 233
#2: 2011-02-03 21:01:15 ЛС | профиль | цитата
Леонид,
Леонид писал(а):
пределения координат и эмулирую нажатие кнопки

Для таких целей надо бы использовать sendmessage
------------ Дoбавленo в 21.01:
Add(InlineCode,12199023,210,392)
{
WorkPoints=#7:doClick|
DataPoints=#1:h|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,messages,windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|15: h:THI_Event;|45: procedure doClick(var dt:TData; idx:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.doClick;|14:var i:integer;|5:begin|22: i:=ToIntegerEvent(h);|32: SendMessage(i,BM_CLICK , 0, 0);|4:end;|0:|4:end.|
link(h,10568395:Handle,[])
}
Add(Button,10568395,210,336)
{
Left=195
Top=35
Width=70
Point(Handle)
link(onClick,1290949:doMessage,[])
}
Add(Button,12166558,161,392)
{
Left=180
Top=135
link(onClick,12199023:doClick,[])
}
Add(Message,1290949,259,336)
{
}


карма: 1

0
Ответов: 8930
Рейтинг: 823
#3: 2011-02-03 21:28:47 ЛС | профиль | цитата
Ivann, спасибо, а почему (без IC) у меня не получается? code_22417.txt
карма: 19

0
файлы: 1code_22417.txt [469B] [112]
Ответов: 3349
Рейтинг: 233
#4: 2011-02-03 21:49:33 ЛС | профиль | цитата
Леонид, не имя константы надо брать, а значение которое ему соответствует.
code_22419.txt
карма: 1

0
файлы: 1code_22419.txt [403B] [113]
Ответов: 8930
Рейтинг: 823
#5: 2011-02-03 22:07:28 ЛС | профиль | цитата
Ivann, а..а, вот оно что, так эти значения где-то брать надо Я добавил Имя в список компонента SendMessage и тоже заработало (точно, как у Кота Матроскина).
Ну уж раз пошло: а как работать с выпадающим списком и выбрать в нём "Line-ln"
карма: 19

0
Ответов: 5446
Рейтинг: 323
#6: 2011-02-04 12:18:50 ЛС | профиль | цитата
Леонид, MSDN: CB_SETCURSEL
карма: 1

0
Ответов: 8930
Рейтинг: 823
#7: 2011-02-04 13:01:48 ЛС | профиль | цитата
iarspider, MSDN у меня открывается очень долго и не до разъяснений, только ссылки, а далее никак
Ввёл все CB_*** (34 шт) в компонент SendMessage, сейчас буду применять метод тыка
карма: 19

0
Гость
Ответов: 17029
Рейтинг: 0
#8: 2011-02-04 13:18:27 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 14:37:56
карма: 0

0
Ответов: 3349
Рейтинг: 233
#9: 2011-02-04 13:22:01 ЛС | профиль | цитата
Отписавшийся выше человек есть Ivann.
карма: 1

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#10: 2011-02-04 13:49:06 ЛС | профиль | цитата
217.118.83.135 писал(а):
И посмотри посмотри как объявленно _prop_Message:cardinal

Значения всех констант можно получить в файле Messages.pas
карма: 22

0
Ответов: 3349
Рейтинг: 233
#11: 2011-02-04 13:59:43 ЛС | профиль | цитата
я же написал
217.118.83.135 писал(а):
%Hiasm%compilerfpcmessages.pas

карма: 1

0
Ответов: 8930
Рейтинг: 823
#12: 2011-02-04 14:51:50 ЛС | профиль | цитата
nesco, оттуда и брал, правда не число, а имя, но толку пока нет, кто бы помог в задаче:
------------ Дoбавленo в 14.51:
имеется ID выпадающего списка в чужом *.exe, как выбрать одно из значений
------------ Дoбавленo в 14.51:
(сначала получить список имеющихся значений, определить нужное и выбрать (щёлкнуть на нём))
карма: 19

0
Ответов: 3349
Рейтинг: 233
#13: 2011-02-04 15:21:57 ЛС | профиль | цитата
Леонид, Случаем не так?
code_22423.txt
------------ Дoбавленo в 15.21:
По индексу
Add(InlineCode,12199023,217,203)
{
WorkPoints=#7:doClick|
DataPoints=#1:h|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,messages,windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|15: h:THI_Event;|45: procedure doClick(var dt:TData; idx:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.doClick;|14:var i:integer;|5:begin|22: i:=ToIntegerEvent(h);|48: SendMessage(i,CB_SETCURSEL , ToInteger(dt), 0);|4:end;|0:|4:end.|
link(h,5013553:Handle,[])
}
Add(ComboBox,5013553,203,126)
{
Left=135
Top=55
Width=155
Height=21
Strings=#4:хлеб|6:молоко|4:пиво|5:водка|4:комп|6:машина|
Point(Handle)
}
Add(Button,4555850,77,203)
{
Left=290
Top=55
Caption=">>"
link(onClick,13852495:doNext,[])
}
Add(Button,11407002,105,210)
{
Left=80
Top=55
Caption="<<"
link(onClick,13852495:doPrev,[])
}
Add(Counter,13852495,168,203)
{
link(onNext,12199023:doClick,[])
}


карма: 1

0
файлы: 1code_22423.txt [840B] [96]
Ответов: 8930
Рейтинг: 823
#14: 2011-02-04 18:41:27 ЛС | профиль | цитата
Ivann, приблизительно так, спасибо (в Вашем списке нет одной позиции: "девушка" )
карма: 19

0
Ответов: 3349
Рейтинг: 233
#15: 2011-02-04 18:43:37 ЛС | профиль | цитата
Что еще не так?
карма: 1

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