Работа с железом
Code: |
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); Application.ProcessMessages; mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); |
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Следующий пример демонстрирует использование API функции mouse_event() для эмуляции событий мышки. Когда Button2 нажата, то мышь перемещается на Button1 и щёлкает по ней. Координаты мыши даны в "Mickeys", где 65535 соответствует ширине экрана.
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Code: |
Begin //--------- SwapMouseButton(true); // Поменять обратно - SwapMouseButton(false); //--------- end; |
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Для этого можно воспользоваться API функцией ClipCursor(). Например, можно вставить следующий код в обработчик события формы OnMouseDown:
ClipCursor(&BoundsRect);
а следующий код в обработчик события формы OnMouseUp:
ClipCursor(NULL);
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Существуют функции winapi:
WM_LBUTTONDOWN
WM_RBUTTONDOWN
Если проверить точку нажатия мышки таким вот образом:
...
SetForegroundWindow(WindowUO);
mouse_event(MOUSEEVENTF_MOVE,400,400,0,0);
...
то получилось, что мышка перемещалась не в те координаты(относительно разрешения монитора (800 на 600)) которые я задумал(в не зависимости от местоположения мышки она перемещалась строго по одному направлению на одинаковое расстояние), причем я сделал еще один вариант - dx=100, dy=100, но тогда перемещение мышки произошло в другую сторону(в сторону x=0 y=0 монитора)!
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
GetCursorPos()
Автор Spawn
Обрабатывай событие OnMouseMove. Координаты курсора можно получить следующим путем:
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Следующий пример показывает, как "подтолкнуть мышку" без вмешательства пользователя.
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Можно через события OnMouseEnter/OnMouseLeave:
Затем считывать параметр FMouseInPos.
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Code: |
// if the result is 0, no mouse is present
function GetNumberOfMouseButtons: Integer; begin Result := GetSysTemMetrics(SM_CMOUSEBUTTONS); end;
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('Your mouse has ' + IntToStr(GetNumberOfMouseButtons) + ' buttons.'); end; |
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Существует такой тип, как TMouse, который передаёт координаты мышки в любое время, так что помести в обработчик события нажатия мыши на форме его вызов. Подробнее смотри в хелпе.
Лучше говорить, что существует объект класса TMouse, на него ссылается глобальная переменная Mouse из модуля Controls... А то человек кинется создавать свой экземпляр...
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Code: |
// Set example: procedure TForm1.Button1Click(Sender: TObject); begin // will reset after system start SetDoubleClickTime(1500); end;
// Get example: procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage(IntToStr(GetDoubleClickTime)); end; |
- Подробности
- Родительская категория: Мышка/клавиатура
- Категория: Мышка
Страница 11 из 17