|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.10.2013, 19:34 | #1 |
Пользователь
Регистрация: 26.09.2013
Сообщений: 26
|
Всем здравствуйте, помогите пожалуйста.
Мне нужно кликнуть мышкой в другом приложении в заданных координатах делаю так: PostMessage(hwnd1, WM_LBUTTONDOWN, MK_LBUTTON, MakeLParam(i, j)); PostMessage(hwnd1, WM_LBUTTONUP, 0, MakeLParam(i, j)); Но ничего не происходит. В Spy++ заметил что когда я делаю это вручную перед нажатием кнопки отправляются эти сообщения: WM_SETCURSOR hwnd:здесь хэндл окна nHittest:HTCLIENT wMouseMsg: WM_LBUTTONDOWN и перед отжатием кнопки: WM_SETCURSOR hwnd:здесь хэндл окна nHittest:HTCLIENT wMouseMsg: WM_LBUTTONUP Тоесть как я понял программа проверяет правильно ли установлен курсор. Как мне повторить эти сообщения? Напишите готовый код. Делаю на Delphi. Как отправить такое сообщение нашел: Код:
Последний раз редактировалось Stilet; 03.11.2013 в 19:34. |
17.10.2013, 06:32 | #2 |
Форумчанин
Регистрация: 16.01.2011
Сообщений: 325
|
Если целевое приложение имеет более высокие административные права, Вы не сможете осуществить задуманное.
|
17.10.2013, 15:24 | #3 |
Пользователь
Регистрация: 26.09.2013
Сообщений: 26
|
Это - игра.
|
17.10.2013, 15:49 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
17.10.2013, 16:43 | #5 |
Пользователь
Регистрация: 26.09.2013
Сообщений: 26
|
Должен произойти клик по нужному месту тоесть персонаж должен начать рубить дерево.
Последний раз редактировалось Angelochek*; 17.10.2013 в 16:47. |
17.10.2013, 21:08 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
А откуда берете i и j?
Попробуйте перед отправлением сообщений сделать окно игры активным - вполне возможно, что игра, когда окно неактивно, уходит в паузу или не реагирует на такие события. |
17.10.2013, 22:57 | #7 |
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
В играх кстати да, интерфейс управления может работать как угодно и вообще не факт что он работает через сообщения окну. Некоторые игры могут использовать даже собственные модули или драйвера управления с клавиатуры или мыши.
Пробовать нужно, искать подходящие методы. Как вариант можно просто програмно эмулировать нажатие клавиш клавиатуры или мыши функциями keybd_event() или mouse_event(). Не очень удобный вариант, но в большинстве случаев самый работоспособный. Неудобный тем, что эмуляция нажатия не привязана ни к какому окну, то есть кнопка мыши просто нажимается и отпускается в указанных координатах, но сами координаты никак не привязаны к окну. Можно сделать окно активным, подобрать координаты в области Desktop где нужно кликать мышкой и это может работать. Но при этом следует помнить, что окно может быть сдвинуто, либо по каким либо другим причинам координаты клика мышкой в окне могут измениться и тогда это нужно будет как то отслеживать, приспосабливаться и.т.д... |
17.10.2013, 23:48 | #8 |
Пользователь
Регистрация: 26.09.2013
Сообщений: 26
|
i и j это координаты найденного пикселя. Попробывал при активном окне и когда срабатывает нажатие объект(дерево) выделяется как будто на него наведен курсор тоесть что то происходит но не до конца.
Последний раз редактировалось Angelochek*; 18.10.2013 в 00:12. |
18.10.2013, 01:12 | #9 | |
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
Цитата:
Код:
|
|
18.10.2013, 08:44 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
А координаты относительно чего? Окна или экрана?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка курсора | _-Re@l-_ | Общие вопросы Delphi | 3 | 28.05.2010 17:25 |
задание положения курсора в окне(не full screen)) | Oburec | Общие вопросы Delphi | 1 | 30.06.2009 00:42 |
Установка курсора на новую запись в DBGrid | Nomiko | БД в Delphi | 9 | 24.05.2009 18:40 |
Установка курсора в определеное место экрана? | ALEX_RAS | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 23.05.2008 20:49 |
Установка собственного курсора | Amateur | Общие вопросы Delphi | 4 | 13.11.2007 05:42 |