Вверх ↑
Этот топик читают: Гость
Ответов: 4622
Рейтинг: 746
#16: 2010-08-26 13:01:56 ЛС | профиль | цитата
user_asm писал(а):
в окно Блокнота посылаются сообщения что нажимется ПКМ, посылаются с периодом допустим в 1000 мс

Ну так тебе ж nesco выше привел пример. Компоненту посылки сообщений нужно указать хэндл окна. У nesco это хэндл главной формы. Ей и посылаются сообщения о нажатии кнопки мыши. Тебе нужно посылать сообщения Блокноту. Вывод: нужно получить хэндл окна Блокнота. Как? Используем компоненты поиска окна.

С чем ещё проблемы? С обработкой нажатия F8/F12? Или со сворачиванием блокнота?
карма: 26

0
Разработчик
Ответов: 26072
Рейтинг: 2122
#17: 2010-08-26 13:11:27 ЛС | профиль | цитата
Netspirit писал(а):
Используем компоненты поиска окна

Ну, я его и отослал к примерам, там есть похожий. Млин, совсем думать не хотят, а может и не знают, что у окна есть дескриптор -- Handle называется, с помощью которого можно управлять окном
карма: 22

0
Ответов: 356
Рейтинг: 31
#18: 2010-08-26 14:47:06 ЛС | профиль | цитата
user_asm писал(а):
Вот простой пример
А где там выбор окна которому посылаются клики?

p.s. Под кликом обычно понимается нажатие и отпускание, а это существенное отличие от только нажатия.

Add(MainForm,14294180,560,133)
{
Visible=1
Point(Handle)
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,8100346:doWork1,[])
link(onMouseUp,8100346:doWork2,[])
}
Add(SendMessage,3553758,560,210)
{
Point(Message)
link(Handle,14294180:Handle,[])
link(Message,1026997:Value,[(587,197)(543,197)(543,252)(503,252)])
}
Add(Memory,1026997,497,210)
{
Default=Integer(516)
Point(Data)
link(onData,3553758:doSendMessage,[])
link(Data,6920422:Value,[])
}
Add(Timer,16403010,399,217)
{
link(onTimer,6276286:doEvent1,[])
}
Add(ChildForm,8100346,616,154)
{
link(onEvent1,14294180:doClose,[(659,160)(659,118)(548,118)(548,160)])
}
BEGIN_SDK
Add(EditMulti,13595055,21,21)
{
EventCount=1
WorkCount=2
link(doWork1,601945:doChangeValue,[(42,27)(42,111)])
link(doWork2,5077840:doChangeValue,[(31,34)(31,160)])
}
Add(MainForm,1708328,63,49)
{
Left=35
Top=105
Width=197
Height=96
Point(onHide)
link(onHide,13595055:onEvent1,[(208,76)(208,27)])
}
Add(LED,601945,63,105)
{
Left=42
Top=5
link(onChange,16174614:doNext,[])
}
Add(Label,7452808,175,105)
{
Left=95
Top=12
Caption=""
AutoSize=1
}
Add(Counter,16174614,119,105)
{
Max=1000000
link(onNext,7452808:doText,[])
}
Add(LED,5077840,63,154)
{
Left=42
Top=37
Value=0
link(onChange,10632341:doNext,[])
}
Add(Label,9072203,175,154)
{
Left=93
Top=44
Caption=""
AutoSize=1
}
Add(Counter,10632341,119,154)
{
Max=1000000
link(onNext,9072203:doText,[])
}
END_SDK
Add(Hub,6276286,455,217)
{
link(onEvent1,1026997:doClear,[])
link(onEvent2,1026997:doValue,[(483,230)(483,216)])
}
Add(Memory,6920422,497,161)
{
Default=Integer(517)
}
карма: 0

0
Разработчик
Ответов: 26072
Рейтинг: 2122
#19: 2010-08-26 14:55:23 ЛС | профиль | цитата
olDjeka писал(а):
Под кликом обычно понимается нажатие и отпускание, а это существенное отличие от только нажатия

Я ему давал пример, как послать сообщение нажатия ПКМ окну, если он хочет послать клик, то надо послать еше и событие отжатия ПКМ через небольшой промежуток времени
карма: 22

0
Ответов: 952
Рейтинг: 4
#20: 2010-08-26 15:20:35 ЛС | профиль | цитата
nesco,
Все просто, кликер для онлайн гамы.
Окно я в принципе нахожу, так как функцию скрытиясворачивания по хоткею я уже реализовал.
"Передавай сообщения" .... этот момент меня и стопорит ... КАК передавать сообщения ? SendMessage в параметрах нет ПКМ, mouseevent не привязывается к произвольному окну ....
------------ Дoбавленo в 15.06:
olDjeka,
В том примере окно находится по названию, вшито в код проги.
------------ Дoбавленo в 15.20:
WM_RBUTTONDOWN = 516
Где взять такие данные? 516 имею ввиду.
карма: 0

0
Ответов: 131
Рейтинг: 15
#21: 2010-08-26 15:21:09 ЛС | профиль | цитата
user_asm писал(а):
Окно я в принципе нахожу

user_asm писал(а):
SendMessage

WM_RBUTTONDOWN = $0204 = 516;
WM_RBUTTONUP = $0205 = 517;
карма: 0

0
Ответов: 952
Рейтинг: 4
#22: 2010-08-26 15:46:47 ЛС | профиль | цитата
Видимо что то не так


Add(MainForm,3429012,336,266)
{
Width=148
Height=69
Point(Handle)
Point(onMouseDown)
link(onMouseDown,13381861:doEvent1,[(380,293)(380,314)])
}
Add(SendMessage,3553758,434,420)
{
Point(Message)
link(onSend,4508867:doTimer,[(478,426)(478,468)])
link(Handle,14631447:Var1,[(440,360)])
link(Message,1026997:Value,[])
}
Add(Memory,1026997,455,364)
{
Default=Integer(516)
}
Add(Timer,16403010,364,420)
{
Enable=1
link(onTimer,3553758:doSendMessage,[])
}
Add(FindWindow,8849966,539,273)
{
ClassName="Notepad"
Caption="Безымянный - Блокнот"
link(onFind,16403010:doTimer,[(583,279)(583,353)(352,353)(352,426)])
}
Add(Hub,13381861,385,308)
{
link(onEvent1,8849966:doFind,[(440,293)(517,293)(517,279)])
}
Add(SendMessage,12067314,550,480)
{
Point(Message)
link(Handle,14631447:Var2,[(556,422)(517,422)])
link(Message,11264996:Value,[(577,466)(580,466)])
}
Add(GetDataEx,14631447,511,355)
{
Angle=1
link(Data,8849966:Handle,[(538,360)])
}
Add(Timer,4508867,490,462)
{
Enable=1
link(onTimer,12067314:doSendMessage,[(536,468)(536,486)])
}
Add(Memory,11264996,574,420)
{
Default=Integer(517)
}


------------ Дoбавленo в 15.46:
Netspirit,
Про окна хэндлы поиск окон сволрачивание и т.д. я давно знаю, и все реализовал и все работает.
С кликами в определенном окне дело застопорилось.
карма: 0

0
файлы: 1code_20226.txt [1.2KB] [228]
Ответов: 4622
Рейтинг: 746
#23: 2010-08-26 15:48:10 ЛС | профиль | цитата
Во-первых у тебя поиск окна не выполняется.
Примерно так должно работать, но не работает. Попробуй слать не Блокноту, а своей программе.
code_20227.txt
карма: 26

0
файлы: 1code_20227.txt [1KB] [341]
Ответов: 952
Рейтинг: 4
#24: 2010-08-26 15:56:24 ЛС | профиль | цитата
Не выходит.
Что-то не так ..... координаты мыши может задать? Но тогда есть риск что в свернутомскрытом она не будет кликать.
карма: 0

0
Ответов: 4622
Рейтинг: 746
#25: 2010-08-26 16:02:12 ЛС | профиль | цитата
Возможно, что она по-любому не будет кликать в свернутом состоянии, а возможно нужно искать дочернее окно и слать клик ему...
карма: 26

0
Ответов: 952
Рейтинг: 4
#26: 2010-08-26 16:10:34 ЛС | профиль | цитата
Может WinEnum использовать?
Не получилось.
карма: 0

0
Разработчик
Ответов: 26072
Рейтинг: 2122
#27: 2010-08-26 16:19:39 ЛС | профиль | цитата
Netspirit писал(а):
а возможно нужно искать дочернее окно и слать клик ему...

О то, скорее всего. реакции у гланого окна на ПКМ я не увидел, надо найти дескриптор поля ввода и туда пробовать послать
карма: 22

0
Ответов: 4622
Рейтинг: 746
#28: 2010-08-26 17:27:44 ЛС | профиль | цитата
user_asm, вот программка, поможет при работе с окнами http://s0m.narod.ru/iws.html. Попробуй с ней поотправлять сообщения главному окну, дочерним, посмотри результаты.
карма: 26

0
Ответов: 952
Рейтинг: 4
#29: 2010-08-26 17:47:05 ЛС | профиль | цитата
Эту программку я пользую еще с 2003 года
Сейчас не могу, работаю, вечерком постараюсь глянуть, но собственно меня интересует реализация на HiAsme, ведь пример выложенный мной в файлообменник работает, и в скрытом и в открытом окне.

Попробовал. Ни на одно сообщение окно не среагировало.
карма: 0

0
Ответов: 952
Рейтинг: 4
#30: 2010-08-29 23:40:53 ЛС | профиль | цитата
Бьюсь, бьюсь а толку нет ...
карма: 0

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