Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ SendMessage

Автор: edik23 21.2.2018, 15:25

По примеру из Вики пытался нажать в том же калькуляторе цифру "5".

set #HWND findwindow ('Калькулятор') //Находим его окно
showwindow #HWND TOP
set #WM hex2dec(0x00090DA8)
//lParam и wParam не используются
set $s sendmessage (#HWND #WM 0 0) //жмем 5
end_script

Но что то пошло не так. #HWND - хэндл окна калькулятора #WM - хендл кнопки 5 . Как отправить комманду КЛИК?

Автор: DarkMaster 21.2.2018, 23:44

Хендл калькулятора тут вообще никому не нужен. Вы работате с окном кнопки - с ним и работайте, хендл его пишете. WM - это имя сообщения которое вы посылаете. Подробнее почтить можно тут:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx
категории сообщений:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644927(v=vs.85).aspx#system_defined

Автор: olduo.com 22.2.2018, 0:24

set $s sendmessage (#HWND hex2dec(0x100) hex2dec(0x35) 0) //жмем 5

Автор: edik23 22.2.2018, 0:49

Цитата(olduo.com @ 22.2.2018, 0:24) *

set $s sendmessage (#HWND hex2dec(0x100) hex2dec(0x35) 0) //жмем 5

не работает

Цитата(DarkMaster @ 21.2.2018, 23:44) *

Хендл калькулятора тут вообще никому не нужен. Вы работате с окном кнопки - с ним и работайте, хендл его пишете. WM - это имя сообщения которое вы посылаете. Подробнее почтить можно тут:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx
категории сообщений:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644927(v=vs.85).aspx#system_defined


Сделал такую конструкцию :

set #WM hex2dec(000435F6) //хэндл кнопки 5
set $s sendmessage (#WM BM_CLICK 0 0) //жмем 5
end_script

Тоже не хочет.
Хэндл кнопки нахожу InqSoft. Через нее же если отправить сообщение, кнопка нажимается. Через Uopliot нет. Что то делаю не так. Сообразить бы?

Автор: Cockney 22.2.2018, 1:01

Edit Box message, Static control message......какой смысл сейчас использовать sendmessage (а по пути еще искать тип контрола, что не под силу 97% юзеров), когда можно слать клики спец. коммандами ?

Автор: edik23 22.2.2018, 1:20

Цитата(Cockney @ 22.2.2018, 1:01) *

Edit Box message, Static control message......какой смысл сейчас использовать sendmessage (а по пути еще искать тип контрола, что не под силу 97% юзеров), когда можно слать клики спец. коммандами ?


Видимо староват я стал. Не совсем Вас понял. Ткните меня попроще пжл

Автор: cirus 22.2.2018, 1:55

Какая ОС используется? В win10 калькулятор переделан. Sendmessage, как и left в нём не работают.

Автор: DarkMaster 22.2.2018, 7:57

Цитата
hex2dec

Зачем оно тут вообще? 0x перед числом и все.

А вопрос по сути тот же самый. Зачем вы это городите? Это тестовый полигон? Просто если в этом какой-то практический смысл, то можно добиться результата гораздо проще с помощью эмуляции той же клавиатуры и мыши.

Автор: edik23 22.2.2018, 9:41

Цитата(cirus @ 22.2.2018, 1:55) *

Какая ОС используется? В win10 калькулятор переделан. Sendmessage, как и left в нём не работают.


Win 7 у меня

Цитата(DarkMaster @ 22.2.2018, 7:57) *

Зачем оно тут вообще? 0x перед числом и все.

А вопрос по сути тот же самый. Зачем вы это городите? Это тестовый полигон? Просто если в этом какой-то практический смысл, то можно добиться результата гораздо проще с помощью эмуляции той же клавиатуры и мыши.


Да, тестовый. Хотелось бы понять как работает. Не принципиально именно на калькуляторе. Хочу знать как работает. Как искать хэндл окна и кнопки и тд.

Насчет hex2dec - В примере на вики хендл из 16-тиричной системы в 10-тичную перекодирован. Я и понял что надо использовать 10-тичную

Автор: DarkMaster 22.2.2018, 10:33

Цитата
Как искать хэндл окна и кнопки и тд.

http://forum.uokit.com/index.php?showtopic=26742

Автор: olduo.com 22.2.2018, 12:48

Цитата(edik23 @ 22.2.2018, 0:49) *

не работает

сори у меня нет уопилота, я им пользовался кучу лет назад)) если пишу бота то используют память офсеты итд и не уопилот естественно. качнул пилот, ну вот 5 нажать проще так наверное
Код
sendex {5}

но естественно она шлет в развернутое окно, поэтому вначале showwindow #HWND TOP

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)