|
Передача нажатия кнопки окну PW - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
14.05.2013, 15:28
|
#1
|
|
|
|
Разведчик
|
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Передача нажатия кнопки окну PW
Здравствуйте.
Как эмулировать нажатие клавиши клавиатуры (допустим TAB) и передать его в окно с PW?
Попробовал так:
void CNewBotDlg::OnBnClickedOk()
{
HWND hWnd = ::FindWindow((LPCSTR)"ElementClient Window",(LPCSTR)"Perfect World"); //Находим HWND окна PW
::SendMessageA(hWnd,VK_TAB,0,0); //отправляем этому окну нажатие клавиши TAB
}
Но не получилось, отклик нулевой....
Спасибо.
|
|
|
14.05.2013, 16:32
|
#2
|
|
|
|
Рыцарь-капитан
|
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
|
Re: Передача нажатия кнопки окну PW
Ну во первый дам совет использовать PostMessage, а не SendMessage.
Во вторых ты даже не зада методику клика wm_keydown или keyup и т.д.
Вот тебе пример, писал на Delphi. но думаю переделать не составит труда:
PostMessage(FindWindow('ElementClient window',nil),WM_KEYDOWN,VK_TAB,0);
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
|
|
|
14.05.2013, 17:45
|
#3
|
|
|
|
Разведчик
|
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Передача нажатия кнопки окну PW
да разобраться-то не мудрено дело, другое дело, что он у меня не работает((
void CNewBotDlg::OnBnClickedOk()
{
BOOL ok;
HWND hWnd = ::FindWindow("ElementClient Window",0);
ok = ::PostMessage(hWnd,WM_KEYDOWN,VK_TAB,0);
::PostMessage(hWnd,WM_KEYUP,VK_TAB,0);
}
ok возвращает 1, значит сообщение зарегистрировано, но в клиенте ничего не происходит, т.е. таргет не выделяется(
|
|
|
14.05.2013, 17:55
|
#4
|
|
|
|
Рыцарь-капитан
|
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
|
Re: Передача нажатия кнопки окну PW
Попробуй вместо Vk_tab вставить ord('S') выделить в PW строчку чата и послать запрос. Буква значения не имеет. просто пример, если успешно напишется, то проблема не в запросах
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
|
|
|
14.05.2013, 18:09
|
#5
|
|
|
|
Разведчик
|
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Передача нажатия кнопки окну PW
Хм, если написать ok = ::PostMessage(hWnd,WM_KEYDOWN,char('S'),0); (ord нет в С++), то все нормально вставляется в чат. Ммм, в чем может быть проблема тогда?
|
|
|
14.05.2013, 19:46
|
#6
|
|
|
|
Фельдмаршал
|
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: Передача нажатия кнопки окну PW
Проблема не может быть. Проблема есть.
Клиент ПВ обрабатывает нажатия функциональных клавишь отдельным алгоритмом, что позволяет выяснить была нажата клавиша или просто отослано сообщение.
Варианты решения:
1. Разморозить окно (unfreez).
2. Обойти проверку.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Флудобот, Девизхак, OutFocusBot, OutFocusBot ver 3 (freepvp), PWMultiHack ver 3, AutoRespawn.
JD: JDMultiHack, JDFlooder, JDBot.
Статьи: Отключаем UAC, Ищем базовый адрес Perfect World, "Патчер памяти" или "Пишем флайхак", "Патчер памяти 2" или "Пишем Джампхак", "Поиск инжектов" или "Наш код в чужом процессе"
|
|
|
14.05.2013, 19:49
|
#7
|
|
|
|
Разведчик
|
Регистрация: 12.05.2013
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Передача нажатия кнопки окну PW
Ага, ясно... А что такое замороженое окно? Где об этом почитать?
|
|
|
14.05.2013, 20:17
|
#8
|
|
|
|
Рыцарь-капитан
|
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
|
Re: Передача нажатия кнопки окну PW
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"
Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
|
|
|
14.05.2013, 20:48
|
#9
|
|
|
|
Разведчик
|
Регистрация: 23.06.2012
Сообщений: 43
Популярность: 427
Сказал(а) спасибо: 18
Поблагодарили 59 раз(а) в 35 сообщениях
|
Re: Передача нажатия кнопки окну PW
Xantrax2150198,
У меня например работает, правда на Delphi, следующий код:
SendMessage(FindWindow('ElementClient window',nil), WM_KEYDOWN, VK_Escape, 0);
SendMessage(FindWindow('ElementClient window',nil), WM_KEYUP,VK_Escape, 0);
По поводу предпочтения sendmessage или postmessage, выбирать тебе, ибо:
PostMessage помещает сообщение в очередь сообщений, связанную с указанным окном. Она не ждёт подтверждения или ответа. Напротив, SendMessage ждёт до 5 секунд, пока целевое окно обработает сообщение. Если в течение 5 секунд сообщение не будет обработано, команда завершается и задаёт переменной ErrorLevel значение FAIL.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 00:41.
|
|