Вверх ↑
Этот топик читают: Гость
Ответов: 537
Рейтинг: 14
#1: 2024-01-28 12:55:54 ЛС | профиль | цитата
Нужно послать окну двойной клик левой кнопки мыши по заданным координатам. Как сделать один клик я знаю, двойной клик не делает
Add(Memo,6879640,511,539)
{
Width=622
Height=797
Align=5
ScrollBars=2
}
Add(MainForm,2953706,70,119)
{
Height=491
}
Add(Edit,16723662,525,182)
{
Left=85
Top=50
Text="15"
}
Add(Edit,9103623,518,238)
{
Left=30
Top=50
Text="15"
}
Add(MT_String,16526688,371,119)
{
link(onResult,6442596:doCompare,[(415,125)(415,125)])
}
Add(WinEnum,4993311,322,105)
{
VisibleOnly=1
Point(doEnumChildWindows)
Point(onEnumChildWindows)
Point(ParentHandle)
link(onEnumChildWindows,16526688:doStr,[(362,125)(362,125)])
}
Add(Button,14606631,126,119)
{
Left=40
Top=10
Width=85
Caption="Найти окно"
link(onClick,14173287:doEnum,[])
}
Add(MultiElementEx,5433945,511,301)
{
link(onSend,2536781:doTimer,[])
link(Handle,4647765:Var2,[])
link(X,1963343:Var2,[])
link(Y,9973964:Var2,[])
}
BEGIN_SDK
Add(EditMultiEx,7902548,21,21)
{
WorkCount=#4:Клик|
EventCount=#14:onSend=Кликнул|
DataCount=#6:Handle|1:X|1:Y|
Width=307
Height=333
link(Клик,16170724:doSendMessage,[(39,27)(39,265)])
}
Add(SendMessage,16170724,56,259)
{
WParam=1
Point(Message)
link(onSend,16004727:doSendMessage,[])
link(Handle,7948946:Var2,[])
link(LParam,9329555:Var2,[])
link(Message,3392573:Text,[])
}
Add(PointXY,6682681,70,126)
{
link(X,7902548:X,[(76,74)(34,74)])
link(Y,7902548:Y,[(83,74)(41,74)])
}
Add(SendMessage,16004727,154,259)
{
WParam=1
Point(Message)
link(onSend,13160655:doSendMessage,[])
link(Handle,173983:Var2,[])
link(LParam,2213975:Var2,[])
link(Message,14935128:Text,[])
}
Add(GetDataEx,9329555,70,161)
{
link(Data,6682681:Point,[])
}
Add(GetDataEx,7948946,56,175)
{
link(Data,7902548:Handle,[(62,94)(27,94)])
}
Add(SendMessage,13160655,252,259)
{
Point(Message)
link(onSend,7902548:onSend,[(306,265)(306,27)])
link(Handle,173983:Var3,[(258,180)])
link(LParam,2213975:Var3,[(272,166)])
link(Message,14641649:Text,[])
}
Add(GetDataEx,2213975,168,161)
{
Angle=3
link(Data,9329555:Var3,[])
}
Add(GetDataEx,173983,154,175)
{
Angle=3
link(Data,7948946:Var3,[])
}
Add(VisualStrings,3392573,77,217)
{
Lines=#3:513|
}
Add(VisualStrings,14935128,175,217)
{
Lines=#3:512|
}
Add(VisualStrings,14641649,273,217)
{
Lines=#3:514|
}
END_SDK
Add(MultiElementEx,14164215,595,301)
{
link(Handle,4647765:Var3,[(601,278)])
link(X,1963343:Var3,[(608,285)])
link(Y,9973964:Var3,[(615,229)])
}
BEGIN_SDK
Add(EditMultiEx,16196339,21,21)
{
WorkCount=#4:Клик|
EventCount=#14:onSend=Кликнул|
DataCount=#6:Handle|1:X|1:Y|
Width=307
Height=333
link(Клик,6332281:doSendMessage,[(39,27)(39,265)])
}
Add(SendMessage,6332281,56,259)
{
WParam=1
Point(Message)
link(onSend,5428336:doSendMessage,[])
link(Handle,1071568:Var2,[])
link(LParam,13826056:Var2,[])
link(Message,15544731:Text,[])
}
Add(PointXY,10144121,70,126)
{
link(X,16196339:X,[(76,74)(34,74)])
link(Y,16196339:Y,[(83,74)(41,74)])
}
Add(SendMessage,5428336,154,259)
{
WParam=1
Point(Message)
link(onSend,3932640:doSendMessage,[])
link(Handle,15975527:Var2,[])
link(LParam,10524128:Var2,[])
link(Message,8927878:Text,[])
}
Add(GetDataEx,13826056,70,161)
{
link(Data,10144121:Point,[])
}
Add(GetDataEx,1071568,56,175)
{
link(Data,16196339:Handle,[(62,94)(27,94)])
}
Add(SendMessage,3932640,252,259)
{
Point(Message)
link(onSend,16196339:onSend,[(306,265)(306,27)])
link(Handle,15975527:Var3,[(258,180)])
link(LParam,10524128:Var3,[(272,166)])
link(Message,6846865:Text,[])
}
Add(GetDataEx,10524128,168,161)
{
Angle=3
link(Data,13826056:Var3,[])
}
Add(GetDataEx,15975527,154,175)
{
Angle=3
link(Data,1071568:Var3,[])
}
Add(VisualStrings,15544731,77,217)
{
Lines=#3:513|
}
Add(VisualStrings,8927878,175,217)
{
Lines=#3:512|
}
Add(VisualStrings,6846865,273,217)
{
Lines=#3:514|
}
END_SDK
Add(GetDataEx,1963343,518,280)
{
Angle=3
link(Data,9103623:Text,[(524,285)])
}
Add(GetDataEx,9973964,525,224)
{
Angle=3
link(Data,16723662:Text,[(531,229)])
}
Add(StrMask,6442596,420,119)
{
Mask="*Edit*"
link(onTrue,3007366:doSearch,[])
}
Add(BlockFind,3007366,462,126)
{
IncludeBlock=1
StartBlock=";"
EndBlock=";"
link(onSearch,5215047:doValue,[])
}
Add(WinEnum,14173287,175,119)
{
link(onFindWindow,10149047:doCompare,[])
}
Add(StrMask,10149047,224,119)
{
Mask="*Блокнот*"
link(onTrue,8460914:doData,[])
}
Add(DoData,8460914,273,126)
{
link(onEventData,4993311:doEnumChildWindows,[])
link(Data,14173287:Handle,[(279,114)(215,114)(215,162)(181,162)])
}
Add(Memory,5215047,511,126)
{
link(onData,5433945:Клик,[(563,132)(563,173)(499,173)(499,307)])
}
Add(GetDataEx,4647765,511,273)
{
link(Data,5215047:Value,[])
}
Add(Timer,2536781,553,301)
{
Interval=200
Enable=1
AutoStop=1
link(onTimer,14164215:Клик,[])
}

Для проверки кликов, откройте блокнот с любым текстом, введите координаты и нажмите кнопку

Редактировалось 3 раз(а), последний 2024-01-28 13:26:54
карма: 4

0
Ответов: 875
Рейтинг: 322
#2: 2024-01-28 14:13:38 ЛС | профиль | цитата
есть небольшая разница

Add(MainForm,2953706,413,196)
{
Width=367
Height=215
Position=1
}
Add(Image,15365353,511,196)
{
Left=5
Top=5
Width=85
Height=90
Color=-16777215
Point(onDblClick)
link(onClick,1105861:doText,[])
link(onDblClick,9718646:doText,[(579,209)(579,254)])
}
Add(Label,1105861,616,196)
{
Left=155
Top=10
Caption="X"
}
Add(Label,9718646,616,248)
{
Left=155
Top=70
Caption="X"
}
Add(Image,8854317,749,196)
{
Left=190
Top=5
Width=85
Height=90
Color=-16777215
link(onClick,11199151:doEvent1,[])
}
Add(Label,10036072,903,196)
{
Left=340
Top=10
Caption="X"
}
Add(Label,3269411,903,248)
{
Left=340
Top=70
Caption="X"
}
Add(Hub,11199151,798,196)
{
link(onEvent1,10036072:doText,[])
link(onEvent2,1029340:doData,[(824,209)(824,254)])
}
Add(DoData,1029340,840,248)
{
Data=Integer(0)
link(onEventData,3269411:doText,[])
}
Add(Memo,7977976,749,245)
{
Left=185
Top=110
Width=150
Height=70
Color=-16777201
Font=[MS Sans Serif,10,0,0,1]
Enabled=1
WinStyle=1
Strings=#20:Сделай простой клик.|21:Но как будет работать|18:в действительности|14:надо проверять|
}
Add(Memo,663489,511,238)
{
Left=5
Top=110
Width=165
Height=70
Color=-16777201
Font=[MS Sans Serif,10,0,0,1]
Enabled=1
WinStyle=1
Strings=#20:Сделай простой клик,|18:затем двойной клик|17:и увидишь разницу|0:|
}

Схему проверить под Wine не могу.
карма: 1

0
Ответов: 537
Рейтинг: 14
#3: 2024-01-28 14:37:31 ЛС | профиль | цитата
Вот так работает двойной клик
Add(Button,14606631,84,308)
{
Left=40
Top=10
Width=85
Caption="Клик"
link(onClick,12185893:doTimer,[])
}
Add(MouseEvent,8837693,280,308)
{
}
Add(Timer,11671363,224,308)
{
Interval=200
Enable=1
AutoStop=2
link(onTimer,8837693:doClick,[])
}
Add(Timer,12185893,154,308)
{
Interval=3000
Enable=1
AutoStop=1
link(onTimer,11671363:doTimer,[])
}

Но нужно кликнуть в стороннем окне Windows не используя настоящую мышь. Программы нужна не для кликов и игре, просто автоматизировать действия

Редактировалось 1 раз(а), последний 2024-01-28 14:56:24
карма: 4

0
Ответов: 875
Рейтинг: 322
#4: 2024-01-28 15:02:00 ЛС | профиль | цитата
Попробуйте...

Add(MainForm,2953706,252,84)
{
Width=248
Height=184
}
Add(Image,10857597,574,168)
{
Left=40
Top=40
Width=40
Height=40
Color=-16777215
Point(onDblClick)
link(onDblClick,3087545:doText,[])
}
Add(Label,3087545,637,175)
{
Left=110
Top=55
Caption="X"
}
Add(MouseEvent,8837693,490,168)
{
Point(doPosition)
link(X,526497:Value,[])
link(Y,5550272:Value,[])
}
Add(Memory,526497,497,77)
{
Default=Integer(60)
}
Add(Memory,5550272,504,119)
{
Default=Integer(90)
}
Add(Button,4229181,245,161)
{
Left=65
Top=115
link(onClick,13113378:doEvent1,[])
}
Add(Hub,13113378,308,161)
{
link(onEvent1,8837693:doPosition,[(441,167)(441,188)])
link(onEvent2,5209054:doEvent1,[])
}
Add(Hub,5209054,357,168)
{
link(onEvent1,15688674:doWork2,[])
link(onEvent2,15688674:doWork3,[(396,181)])
}
Add(HubEx,15688674,392,168)
{
link(onEvent,8837693:doClick,[])
}

карма: 1

0
Ответов: 537
Рейтинг: 14
#5: 2024-01-28 15:07:12 ЛС | профиль | цитата
А если окно сдвинуть?
карма: 4

0
Ответов: 875
Рейтинг: 322
#6: 2024-01-28 15:13:35 ЛС | профиль | цитата
Ну тогда нужно использовать не только нахождение окон но и информацию об окне, там есть координаты окна.

--- Добавлено в 2024-01-28 15:43:26

Вот это ищет окно

Add(MainForm,2953706,420,175)
{
Width=201
Height=151
Caption="Suche"
Point(Handle)
link(onCreate,124372:doPopup,[(464,195)(464,219)(408,219)(408,244)])
}
Add(MouseEvent,8837693,1050,245)
{
Point(doPosition)
link(X,5883154:Result,[(1063,225)(890,225)(890,301)(748,301)])
link(Y,15656860:Result,[(1070,213)(878,213)(878,294)(839,294)])
}
Add(Button,4229181,539,245)
{
Left=60
Top=70
link(onClick,9623720:doFind,[])
}
Add(Hub,13113378,903,238)
{
link(onEvent1,8837693:doPosition,[(1022,244)(1022,265)])
link(onEvent2,5209054:doEvent1,[])
}
Add(Hub,5209054,952,245)
{
link(onEvent1,15688674:doWork2,[])
link(onEvent2,15688674:doWork3,[(991,258)])
}
Add(HubEx,15688674,987,245)
{
link(onEvent,8837693:doClick,[])
}
Add(WinEnum,9623720,602,238)
{
link(onFindWindow,8344244:doWinInfo,[])
link(Caption,7930332:Text,[])
}
Add(Edit,7930332,602,182)
{
Left=30
Top=15
Width=120
Text="WIN"
}
Add(WinInfo,8344244,672,238)
{
Point(Left)
Point(Top)
link(onWinInfo,5883154:doOperation,[])
link(Handle,9623720:Handle,[(678,226)(652,226)(652,282)(608,282)])
}
Add(Math,5883154,742,238)
{
Op2=70
link(onResult,15656860:doOperation,[])
link(Op1,8344244:Left,[(748,226)(725,226)(725,294)(692,294)])
}
Add(Math,15656860,833,238)
{
Op2=80
link(onResult,13113378:doEvent1,[])
link(Op1,8344244:Top,[(839,226)(801,226)(801,285)(699,285)])
}
Add(WinTools,124372,420,231)
{
link(Handle,2953706:Handle,[])
}


А вот окно где нужно что то нажать


Add(MainForm,2953706,567,189)
{
Width=207
Height=149
Caption="WIN"
BorderStyle=1
Position=1
Point(Handle)
link(onCreate,5735548:doVisible,[(611,209)(611,233)(555,233)(555,258)])
}
Add(Image,10857597,637,189)
{
Left=40
Top=40
Width=40
Height=40
Color=-16777215
Point(onDblClick)
link(onDblClick,3087545:doText,[])
}
Add(Label,3087545,700,196)
{
Left=110
Top=55
Caption="X"
}
Add(WinTools,5735548,567,252)
{
link(Handle,2953706:Handle,[])
}

Запустить обе, подвигать окно с картинкой

Редактировалось 1 раз(а), последний 2024-01-28 15:43:26
карма: 1

0
Ответов: 537
Рейтинг: 14
#7: 2024-01-28 15:49:49 ЛС | профиль | цитата
Сделал уже сам

Add(Edit,16723662,567,182)
{
Left=85
Top=50
Text="15"
}
Add(Edit,9103623,560,238)
{
Left=30
Top=50
Text="15"
}
Add(MT_String,16526688,413,119)
{
link(onResult,6442596:doCompare,[(457,125)(457,125)])
}
Add(WinEnum,4993311,364,105)
{
VisibleOnly=1
Point(doEnumChildWindows)
Point(onEnumChildWindows)
Point(ParentHandle)
link(onEnumChildWindows,16526688:doStr,[(404,125)(404,125)])
}
Add(Button,14606631,126,119)
{
Left=40
Top=10
Width=85
Caption="Клик"
link(onClick,14625988:doTimer,[])
}
Add(StrMask,6442596,462,119)
{
Mask="*Edit*"
link(onTrue,3007366:doSearch,[])
}
Add(BlockFind,3007366,504,126)
{
IncludeBlock=1
StartBlock=";"
EndBlock=";"
link(onSearch,5215047:doValue,[])
}
Add(WinEnum,14173287,217,119)
{
link(onFindWindow,10149047:doCompare,[])
}
Add(StrMask,10149047,266,119)
{
Mask="*Блокнот*"
link(onTrue,8460914:doData,[])
}
Add(DoData,8460914,315,126)
{
link(onEventData,4993311:doEnumChildWindows,[])
link(Data,14173287:Handle,[(321,114)(257,114)(257,162)(223,162)])
}
Add(Memory,5215047,553,126)
{
link(onData,1451070:doSendMessage,[(610,132)(610,227)(541,227)(541,307)])
}
Add(MultiElementEx,1451070,553,301)
{
link(Handle,5215047:Value,[])
link(X,9103623:Text,[])
link(Y,16723662:Text,[])
}
BEGIN_SDK
Add(EditMultiEx,8261045,21,21)
{
WorkCount=#26:doSendMessage=Двойной Клик|
EventCount=#16:onSend=Выполнено|
DataCount=#6:Handle|1:X|1:Y|
Width=307
Height=333
link(doSendMessage,10419264:doSendMessage,[(39,27)(39,265)])
}
Add(SendMessage,10419264,56,259)
{
WParam=1
Point(Message)
link(onSend,14442264:doSendMessage,[])
link(Handle,16175111:Var2,[])
link(LParam,10266252:Var2,[])
link(Message,5054037:Text,[])
}
Add(PointXY,297198,70,126)
{
link(X,8261045:X,[(76,74)(34,74)])
link(Y,8261045:Y,[(83,74)(41,74)])
}
Add(VisualStrings,5054037,77,217)
{
Lines=#3:515|
}
Add(SendMessage,14442264,119,259)
{
WParam=1
Point(Message)
link(onSend,8261045:onSend,[(239,265)(239,27)])
link(Handle,16175111:Var3,[(125,208)])
link(LParam,10266252:Var3,[(139,194)])
link(Message,3543882:Text,[])
}
Add(VisualStrings,3543882,140,217)
{
Lines=#3:514|
}
Add(GetDataEx,16175111,56,203)
{
link(Data,8261045:Handle,[(62,94)(27,94)])
}
Add(GetDataEx,10266252,70,189)
{
link(Data,297198:Point,[])
}
END_SDK
Add(Timer,14625988,168,119)
{
Interval=3000
Enable=1
AutoStop=1
link(onTimer,14173287:doEnum,[])
}

карма: 4

0
Ответов: 784
Рейтинг: 168
#8: 2024-01-28 17:08:28 ЛС | профиль | цитата
У меня немного другой вариант.

Add(MainForm,9376056,70,56)
{
Height=163
link(onCreate,927093:doConvert,[])
}
Add(Edit,16723662,336,70)
{
Left=85
Top=50
Text="20"
DataType=1
}
Add(Edit,9103623,294,70)
{
Left=30
Top=50
Text="400"
DataType=1
}
Add(Button,14606631,63,203)
{
Left=40
Top=10
Width=85
Caption="Найти окно"
link(onClick,9431484:doFind,[])
}
Add(PointXY,10601276,294,133)
{
X=300
Y=100
link(X,9103623:Text,[])
link(Y,16723662:Text,[(307,117)(342,117)])
}
Add(TempFileStream,8761983,168,70)
{
Extention=".txt"
link(onCreate,16580059:doShellExec,[])
}
Add(StreamConvertor,927093,119,70)
{
Mode=7
Point(Data)
link(onResult,8761983:doCreate,[])
link(Data,1830208:Text,[])
}
Add(WinExec,16580059,217,63)
{
}
Add(StrList,1830208,119,21)
{
Strings=#124:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |108:Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. |103:Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. |110:Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.|
}
Add(FindWindow,9431484,126,203)
{
ClassName="Notepad"
SkipParam=1
link(onFind,3035978:doFindChild,[])
}
Add(FindWindow,3035978,175,196)
{
ClassName="Edit"
SkipParam=1
link(onFind,2316076:doDeferredEvent,[])
}
Add(WinTools,11978136,392,168)
{
Point(doSendMessage)
link(Handle,3035978:Handle,[(398,159)(454,159)(454,243)(181,243)])
}
Add(DoData,6141733,336,196)
{
Data=Integer(514)
link(onEventData,11978136:doSendMessage,[])
}
Add(DeferredEvent,2316076,224,196)
{
Delay=50
InData=0
link(onDeferredEvent,14393672:doSendMessage,[])
}
Add(SendMessage,14393672,280,196)
{
Point(Message)
link(onSend,6141733:doData,[])
link(LParam,10601276:Point,[])
link(Message,4157358:Value,[(307,173)(342,173)])
}
Add(Memory,4157358,336,133)
{
Default=Integer(515)
}

карма: 15

0
Ответов: 537
Рейтинг: 14
#9: 2024-01-28 20:31:50 ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2024-01-28 20:34:13
карма: 4

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