 |
Передача нажатия кнопки окну 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);
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо" Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 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 строчку чата и послать запрос. Буква значения не имеет. просто пример, если успешно напишется, то проблема не в запросах
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо" Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Делаю программы на заказ, по всем вопросам в скайп: 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
 Сказал(а) спасибо: 111
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: Передача нажатия кнопки окну PW
Проблема не может быть. Проблема есть.
Клиент ПВ обрабатывает нажатия функциональных клавишь отдельным алгоритмом, что позволяет выяснить была нажата клавиша или просто отослано сообщение.
Варианты решения:
1. Разморозить окно (unfreez).
2. Обойти проверку.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
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
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо" Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Делаю программы на заказ, по всем вопросам в скайп: 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.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 00:53.
|
 |