Komunikat o kliknięciu poza formularzem

dział ogólny

Komunikat o kliknięciu poza formularzem

Nowy postprzez Mironas » piątek, 13 grudnia 2013, 18:55

Jak przechwycić komunikat o wciśnięciu przycisku myszki (lub kliknięciu) w dowolnym miejscu ekranu, nawet poza formą aplikacji?
WM_LBUTTONDOWN - działa tylko na formie.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Komunikat o kliknięciu poza formularzem

Nowy postprzez Cyfrowy Baron » piątek, 13 grudnia 2013, 19:34

Musisz stworzyć coś w rodzaju keylogera, który będzie przechwytywał komunikaty: http://programowanie.cal.pl/cyfbar/api4.html#api4
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox

Re: Komunikat o kliknięciu poza formularzem

Nowy postprzez Mironas » piątek, 13 grudnia 2013, 19:53

Prościej się nie da?
To nic ważnego więc chyba sobie odpuszczę, ale dzięki.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Komunikat o kliknięciu poza formularzem

Nowy postprzez Cyfrowy Baron » piątek, 13 grudnia 2013, 23:24

Inny sposób to sprawdzanie w jakiejś pętli lub w timerze pozycji wskaźnika myszy, ale w tej sytuacji nie da się sprawdzić kliknięcia myszą.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox

Re: Komunikat o kliknięciu poza formularzem

Nowy postprzez polymorphism » sobota, 14 grudnia 2013, 11:12

Może niech powie, do czego mu to potrzebne.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2157
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Komunikat o kliknięciu poza formularzem

Nowy postprzez Cyfrowy Baron » sobota, 14 grudnia 2013, 13:33

Pewnie chce zrobić coś w stylu menu kontekstowego tylko z oknem programu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows 7Firefox

Re: Komunikat o kliknięciu poza formularzem

Nowy postprzez Mironas » sobota, 14 grudnia 2013, 15:23

Chodzi o pobieranie koloru piksela spod myszki z dowolnego miejsca ekranu (pulpit, inny program, itp).

Zrobiłem sprawdzenie stanu klawisza myszki w Timerze i od biedy wystarczy. Wada - pobranie koloru powoduje kliknięcie a więc wykonanie czasem jakiejś czynności której nie chciałem wykonywać. Np pobranie koloru z ikony powoduje kliknięcie tej ikony i np odpalenie jakiegoś programu. Wolałbym przechwycić komunikat o kliknięciu (MOUSEDOWN) i nie puszczać go dalej.

Ale to tylko mały pomocniczy programik tylko dla mnie, więc jeśli nie widzicie prostego rozwiązania to nie ma się po co wysilać.
Avatar użytkownika
Mironas
Programista I
Programista I
 
Posty: 427
Dołączył(a): poniedziałek, 2 stycznia 2012, 19:02
Podziękował : 17
Otrzymał podziękowań: 61
System operacyjny: Windows 10
Kompilator: C++Builder 10.3 Rio
TMS Components Pack
Gadu Gadu: 0
    Windows XPChrome

Re: Komunikat o kliknięciu poza formularzem

Nowy postprzez polymorphism » sobota, 14 grudnia 2013, 18:20

A próbowałeś ustawić przechwytywanie komunikatów myszy funkcją SetCapture?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2157
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox


Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 10 gości

cron