HOOK - JournalRecordProc i WM_LBUTTONDBLCLK

0

Witam,
Założyłem Hooka WH_JOURNALRECORD i mam problem z przechwyceniem wiadomości WM_LBUTTONDBLCLK. Wszystkie inne interesujące mnie zdarzenia przechwytuję ale mm problem z tym jednym. Czy ten hook nie przechwytuje tego zdarzenia? Obliczałem czas pomiędzy zdarzeniami WM_LBUTTONDOWN ale takie rozwiązanie nie satysfakcjonuje mnie bo nie zawsze się sprawdza i wprowadza zamieszanie. Proszę o pomoc.

0

chyba powinien...
też nie możesz zakładać, że każde okno będzie miało styl generujący te eventy.

0

Jeżeli klikam dwukrotnie w oknie które reaguje na podwójne kliknięcie to to okno obsługuje to zdarzenie ;). Jeżeli dane okno nie reaguje na dwuklik to mnie to nie interesuje bo nie ma reakcji.

0

ja osobiście nigdy nie używałem WH_JOURNALRECORD, więc głowy sobie uciąć nie dam, ale skoro łapie zdarzenia wejścia, to podwójny przycisk też powinien być jak najbardziej...

poza tym nie zakładaj, że ktoś sobie podwójne kliknięcie zrobił na podstawie tego komunikatu, może zaimplementował po swojemu z odliczaniem czasu...
to tak jakbyś zakładał, że każdy program jest napisany w delphi i ma kontrolki VCLa, nie możesz zakładać że ktoś z góry z czegoś skorzystał skoro mógł to zrobić inaczej...

Sprawdź czy okno które cię interesuje ma CS_DBLCLKS (czy jak to się pisało).

A tak w ogóle jak masz system 64bit i podsystem WOW64, to jak twój program jest 32 bitowy możesz założyć hooka tylko na procesy 32 bitowe i vice versa, a tak w ogóle to w ogóle tego hooka masz w DLLce? bo zakładam, że interesuje cie okno w innym procesie.

0

Tak, procedura jest w dllce. Co do dwukliku. Jezeli klikam na skrot na pulpicie ktory otwiera program to dwuklik jak najbardziej powinien zostac wykryty. Sprawdzalem przy pomocy Spy++ i w nim dwuklik jest wykrywany.

0

aha, czyli mamy explorera...
nie odpowiedziałeś czy testujesz systemie x64

0

Jak na razie testuje na 32b ale w przyszlosci programik tez bedzie dzialal na 64b. Zdaje sobie sprawe z tego ze na te dwie architektury musza byc inne dllki.

0

sprawdź czy WM_LBUTTONDBLCLK będzie w WH_MOUSE

0

Mogę to sprawdzić ale w najbliższej przyszłości bo teraz chcę zamknąć tą wersję aplikacji. Nie chcę na razie zakładać dwoch hookow do przechwytywania myszki i klawiatury.

0

z MSDN (http://msdn.microsoft.com/en-us/library/ms644959%28v=vs.85%29.aspx#wh_journalrecordhook):
WH_JOURNALRECORD

The WH_JOURNALRECORD hook enables you to monitor and record input events. Typically, you use this hook to record a sequence of mouse and keyboard events to play back later by using WH_JOURNALPLAYBACK. The WH_JOURNALRECORD hook is a global hook — it cannot be used as a thread-specific hook.

skoro służy to nagrywania, to wyobraź sobie co stało by się gdyby wykrywało podwójne kliknięcia - zamiast 2 kliknięć przy odtwarzaniu miałbyś 4. (2* (LBUTTONDOWN+LBUTTONUP) + 1*LBUTTONDBLCLK)

1 użytkowników online, w tym zalogowanych: 0, gości: 1