Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 23:17   #11
sashaxD
Пользователь
 
Регистрация: 19.05.2011
Сообщений: 48
По умолчанию

Цитата:
Сообщение от volod3000 Посмотреть сообщение
Нажатии где ?
Хоть где. Хоть на рабочем столе.
sashaxD вне форума Ответить с цитированием
Старый 13.06.2011, 23:27   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

http://programmersforum.ru/showthrea...A+%EC%FB%F8%FC
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.06.2011, 23:36   #13
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Вот проект-пример разбирайтесь, делает то , что Вы хотели.
Вложения
Тип файла: rar Отловить мышу вне формы.rar (468.4 Кб, 21 просмотров)

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Старый 14.06.2011, 00:12   #14
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

volod3000, неудачный пример с WH_JOURNALRECORD, он не даст результат во многих случаях и в "приличных" приложениях, к тому же, имеет свойство кончать жизнь самоубийством при определённых сочетаниях клавиш (ctrl+esc и т.п.). Перехват мыши в системе делается через хук на мышь (WH_MOUSE_LL + WM_LBUTTONUP/WM_LBUTTONDOWN). Хук располагают в dll, примерно так:
Код:
...
function GlobalMouseHook(Code, wParam, lParam : integer): LResult stdcall;
begin
    if code<0 then begin
       GlobalMouseHook:=CallNextHookEx(CurrentMHook,code,wParam,lparam);
       Exit;
    end;
    case wParam of
       $0202{WM_LBUTTONUP}: //тут остановить таймер
       $0201{WM_LBUTTONDOWN}: //тут запустить таймер
    end;
    CallNextHookEx(CurrentMHook, code, wParam, lParam);
    GlobalMouseHook:=0
end;

procedure Hook; export; stdcall;
begin
   CurrentMHook:=SetWindowsHookEx(14{WH_MOUSE_LL}, @GlobalMouseHook, HInstance, 0)
end;
...
В заглушках для таймера можно просто отсылать сообщение назад к приложению.
Вобщем поиск, поиск и ещё раз поиск... а потом милости просим со своими наработками
eoln вне форума Ответить с цитированием
Старый 14.06.2011, 07:23   #15
sashaxD
Пользователь
 
Регистрация: 19.05.2011
Сообщений: 48
По умолчанию

У меня тут без длл такая программка есть. Чтобы было понятнее что хочу, вот программа.

Тыц
sashaxD вне форума Ответить с цитированием
Старый 14.06.2011, 13:13   #16
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

В этой программе по таймеру происходит опрос мыши через GetAsyncKeyState. Особенно замечательно эта программа работает у левшей
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
eoln вне форума Ответить с цитированием
Старый 14.06.2011, 16:53   #17
sashaxD
Пользователь
 
Регистрация: 19.05.2011
Сообщений: 48
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
В этой программе по таймеру происходит опрос мыши через GetAsyncKeyState. Особенно замечательно эта программа работает у левшей
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
if GetKeyState($01) > 1 then timer1.Enabled := false else timer1.enabled := true;

В моей программе так. Следует просто заменить GetKeyState на GetAsyncKeyState ?

UPD заменил - не получилось.

Последний раз редактировалось sashaxD; 14.06.2011 в 16:55.
sashaxD вне форума Ответить с цитированием
Старый 14.06.2011, 17:28   #18
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
if GetAsyncKeyState($01) = 0 then
    timer1.Enabled := false else timer1.enabled := true;
eoln вне форума Ответить с цитированием
Старый 14.06.2011, 19:40   #19
sashaxD
Пользователь
 
Регистрация: 19.05.2011
Сообщений: 48
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Код:
if GetAsyncKeyState($01) = 0 then
    timer1.Enabled := false else timer1.enabled := true;
Спасибо огромное ! Все работает

Тему офф
sashaxD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие мышки ZotaC Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 30.07.2010 16:55
нажатие левой кнопки мыши beygul Помощь студентам 6 13.05.2010 20:04
Обработка сообщения отжатия левой кнопки мыши на компоненте TrackBar CyberJohn Общие вопросы Delphi 5 08.02.2009 12:34
Рисование на Canvas при нажатии левой кнопки мыши. Ветас Помощь студентам 3 11.11.2007 22:02
Отловить нажатие левой кнопки мыши на р листе SAndrus Microsoft Office Excel 2 14.07.2007 13:13