Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отслеживание мышки в Windows 
:(
    Опции темы
rubenhak
  Дата 15.7.2004, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.9.2003
Где: Yerevan

Репутация: нет
Всего: нет



как отследить позицию мышки?
не в Form-e (OnFormMouseMove) а вообще в Windows?
PM WWW MSN   Вверх
dvamaster
Дата 15.7.2004, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 559
Регистрация: 30.6.2004
Где: Россия : Курган

Репутация: 3
Всего: 10



Вот функция:

function GetCursorPos(
var lpPoint: POINT // address of structure for cursor position
): BOOL;

Координата в экранной системе.

Это сообщение отредактировал(а) dvamaster - 15.7.2004, 16:08


--------------------
Хорошую информацию трудно добыть. Сделать с ней что-нибудь - еще труднее. /L. Skywalker/

Что же я сделал не так? /Король Лир/

Я делаю это для твоего же блага! /Любой родитель и палач/

PKUNZIP.ZIP /неизвестный/
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 15.7.2004, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



SetWindowsHookEx с WH_MOUSE


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
rubenhak
Дата 15.7.2004, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.9.2003
Где: Yerevan

Репутация: нет
Всего: нет



а как ето работает?? - SetWindowsHookEx с WH_MOUSE
можете привести пример если не трудно
PM WWW MSN   Вверх
Pakshin A. S.
Дата 15.7.2004, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Зачем использовать хуки, если есть GetCursorPos?!
PM   Вверх
_hunter
Дата 15.7.2004, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



а по какому событию его вызывать? wink.gif
( можно, конечно по таймеру, но это не особо эффективно )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Pakshin A. S.
Дата 15.7.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Зависит от того, что програмёр хочет зделать...
PM   Вверх
rubenhak
Дата 15.7.2004, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.9.2003
Где: Yerevan

Репутация: нет
Всего: нет



мне хе хочется использовать Get-lyalyualya потому что мне
не хочетца использовать Timer,а по другому реализовать не получится.

мне нужен HOOK , скорее мне нужно знать что за обект "под" мышкой.
PM WWW MSN   Вверх
Pakshin A. S.
Дата 16.7.2004, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



А кто тебе сказал, что обязателен таймер!? Достаточно простого цикла. А чтобы цикл не давал большие "тормоза" и работал отдельно, используется поток. biggrin.gif
PM   Вверх
_hunter
Дата 17.7.2004, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



как ты думаеш, сколько процентов времени проца займет такой:
Код
//---------------------------------------------------------------------------

#include <windows.h>
#pragma hdrstop

//---------------------------------------------------------------------------
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
   while(1);
}
//---------------------------------------------------------------------------

#pragma argsused
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
   HANDLE hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
   Sleep(INFINITE);
}
//---------------------------------------------------------------------------

код? правильно ~~ 100
оно конечно при простое, но на переключение тоже времени уйдет
поэтому хуки -- эффективнее ( хотя реализовать сложнее )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
RA
Дата 25.7.2004, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Код

unit MouseHooks;

interface

uses
 Classes, Controls, Forms, StdCtrls, SysUtils, Windows;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 function myHookProc(code : Integer; wParam,
                lParam : LongInt) : LongInt;
                stdcall;

var
 Form1: TForm1;
 myHook : hHook;

function myHookProc(code : Integer; wParam,
              lParam : LongInt) : LongInt;
var
 X, Y : Integer;

begin
 X := PMouseHookStruct(lParam).pt.X;
 Y := PMouseHookStruct(lParam).pt.Y;
 Form1.Label1.Caption := IntToStr(X) +
                        ' : ' + IntToStr(Y);

 result := CallNextHookEx(myHook, Code,
                          wParam, lParam);
end;

procedure TForm1.Button1Click(Sender:
                             TObject);
begin
 myHook := SetWindowsHookEx(WH_MOUSE,
               myHookProc, hInstance,
               GetCurrentThreadID);
end;

procedure TForm1.Button2Click(Sender:
                             TObject);
begin
 UnhookWindowsHookEx(myHook);
end;

end.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1715 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.