Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сообщение WM_LBUTTONCLICK  (Прочитано 13051 раз)
0 Пользователей и 1 Гость смотрят эту тему.
FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« : 27-06-2009 19:33 » 

Добрый день. Пытаюсь послать сообщение окну на нажатие левой кнопки мыши в область экрана с зажатой клавишей SHIFT. Увы происходят только одиночные клики Жаль Подскажите, в чём я ошибся.

Код:
SendMessage(FindWindow(NULL,"Cossacks"),WM_LBUTTONDOWN,MK_SHIFT,MAKELPARAM(x,y));
SendMessage(FindWindow(NULL,"Cossacks"),WM_LBUTTONUP,MK_SHIFT,MAKELPARAM(x,y));
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 27-06-2009 19:57 » 

так это один клик и есть )

А ещё попробуй из не Send, а Post
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 27-06-2009 19:58 » 

самое главное забыл - зачем ищешь окно каждый раз, ищи один раз и пользуй хендл, может время на это тратится
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 27-06-2009 19:58 » 

Да, но дело в том, что wParam принимает код клавиши которая зажата в момент клика, насколько я понял,- указываю клик левой с зажатой клавишей Шифт, а он нивкакую
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 27-06-2009 20:05 » 

есть специальная функция для имитации щелчков mouse_event

попробуй
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 27-06-2009 20:26 » 

Ни в какую. Попробовал даже вот так:

Код:
keybd_event(VK_SHIFT,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,x,y,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,x,y,0,0);
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 27-06-2009 20:33 » 

а на обычных окнах, не директиксовых, срабатывает ? )
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 27-06-2009 20:36 » 

На рабочем столе срабатывает например на ярлыках. Если кликнуть по нижнему ярлыку с зажатым шифтом- выбираются все.
Запускаю своё приложение, нажимаю клавишу по которой производится это действие, всё работает.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 27-06-2009 20:39 » 

значит, в директ икс оно как-то по другому делается
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 27-06-2009 20:45 » 

Хотел бы я знать как Жаль
Записан
FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 27-06-2009 21:26 » 

Код:
case WM_HOTKEY:
switch(wParam)
{
case 0x00F:
SetCursorPos(x,y);
keybd_event(VK_SHIFT,0,0,0);
for(i=0;i<5;i++)
{
SendMessage(hWndCossacks,WM_LBUTTONDOWN,0,MAKELPARAM(x,y));
Sleep(4);
}
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
break;
Получилось Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 28-06-2009 03:26 » 

fа получится ли заменить и мишиный SendMessage на mouse_event? Будет красиво )
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines