Версия для печати темы
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 нажать проще так наверное
Код
но естественно она шлет в развернутое окно, поэтому вначале showwindow #HWND TOP
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)