Как послать сообщение двигать мышь при нажатой кнопке
От: _DimOS Россия  
Дата: 25.08.05 08:48
Оценка:
Как послать сообщение, чтобы по экрану двигалась мышь с нажатой левой кнопкой.
Вроде бы простая задача, а не получается.
Это нужно для того, чтобы выделять мышью текст со страницы и копировать его в буфер.
Помогите.
Re: Как послать сообщение двигать мышь при нажатой кнопке
От: Вумудщзук Беларусь  
Дата: 25.08.05 09:03
Оценка:
>Как послать сообщение, чтобы по экрану двигалась мышь с нажатой левой кнопкой.
>Вроде бы простая задача, а не получается.
>Это нужно для того, чтобы выделять мышью текст со страницы и копировать его в буфер.

А чего надо:

— передвинуть курсор мыши ?
для этого есть SetCursorPos

— заставить систему считать, что мышь передвинулась (чтоб посылалось и правильно обрабатывалось приложением WM_MOUSEMOVE) ?
тут нужно курить в сторону
UINT SendInput(UINT nInputs, LPINPUT pInputs, int cbSize);
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Как послать сообщение двигать мышь при нажатой кнопке
От: _DimOS Россия  
Дата: 25.08.05 09:41
Оценка:
В>А чего надо:
В>- передвинуть курсор мыши ?
В>для этого есть SetCursorPos

В>- заставить систему считать, что мышь передвинулась (чтоб посылалось и правильно обрабатывалось приложением WM_MOUSEMOVE) ?

В>тут нужно курить в сторону
В>
В>UINT SendInput(UINT nInputs, LPINPUT pInputs, int cbSize);
В>


Это то, что оказалось нужным, спасибо.
А нужно было, собственно, для того, чтобы выделить текст мышью и скопировать его в буфер.
Интерфейс — на Java, Java контрол, который отображает текст в html. Оказалось, что это единственный способ.
Re: Как послать сообщение двигать мышь при нажатой кнопке
От: BuHHunyx Беларусь  
Дата: 25.08.05 09:43
Оценка:
Здравствуйте, _DimOS, Вы писали:

_DO>Как послать сообщение, чтобы по экрану двигалась мышь с нажатой левой кнопкой.

_DO>Вроде бы простая задача, а не получается.
_DO>Это нужно для того, чтобы выделять мышью текст со страницы и копировать его в буфер.
_DO>Помогите.

WM_MOUSEMOVE

Parameters

wParam
Indicates whether various virtual keys are down. This parameter can be one or more of the following values.
MK_CONTROL
The CTRL key is down.
MK_LBUTTON
The left mouse button is down.

MK_MBUTTON
The middle mouse button is down.
MK_RBUTTON
The right mouse button is down.
MK_SHIFT
The SHIFT key is down.
MK_XBUTTON1
Windows 2000/XP: The first X button is down.
MK_XBUTTON2
Windows 2000/XP: The second X button is down.

... << RSDN@Home 1.1.4 stable rev. 510>>
Re: Как послать сообщение двигать мышь при нажатой кнопке
От: Константин Россия http://flint-inc.ru/
Дата: 25.08.05 09:44
Оценка:
Здравствуйте, _DimOS, Вы писали:

_DO>Как послать сообщение, чтобы по экрану двигалась мышь с нажатой левой кнопкой.

_DO>Вроде бы простая задача, а не получается.
_DO>Это нужно для того, чтобы выделять мышью текст со страницы и копировать его в буфер.

Ответ про SendInput прочитал, но всё равно, остался вопросик: если послать приложению сначала WM_LBUTTONDOWN, потом нужные WM_MOUSEMOVE'ы, и в конце WM_LBUTTONUP, разве не получалось то, что надо? Или не проверялось?
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: Как послать сообщение двигать мышь при нажатой кнопке
От: Вумудщзук Беларусь  
Дата: 25.08.05 09:56
Оценка: 2 (1)
>Ответ про SendInput прочитал, но всё равно, остался вопросик: если послать приложению сначала WM_LBUTTONDOWN, потом нужные WM_MOUSEMOVE'ы, и в конце WM_LBUTTONUP, разве не получалось то, что надо? Или не проверялось?

You can't simulate keyboard input with PostMessage

тут написано про эмуляцию клавиатуры, в равной степени это касается и мыши
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как послать сообщение двигать мышь при нажатой кнопке
От: Константин Россия http://flint-inc.ru/
Дата: 25.08.05 11:01
Оценка:
Здравствуйте, Вумудщзук, Вы писали:

В>You can't simulate keyboard input with PostMessage


В>тут написано про эмуляцию клавиатуры, в равной степени это касается и мыши


Понятно. Спасибо за информацию. Конечно, сомневаюсь, что все приложения поголовно то и дело тестируют клавиатуру на реальные состояния клавиш или функцией WaitForMultipleObjects ждут, пока двинется мышка, но, по крайней мере, суть подводных граблей уловил.
Почему же, ё-моё, ты нигде не пишешь «ё»?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.