[qt4] Jak przechwycić kliknięcie myszy w systemie?

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.

Czy przetestował byś ten program

Niewiem
2
25%
Niewiem
3
38%
Niewiem
3
38%
Niewiem
0
Brak głosów
 
Liczba głosów: 8
Tomasz_K
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 11 sie 2009, 09:43
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

[qt4] Jak przechwycić kliknięcie myszy w systemie?

Post autor: Tomasz_K »

Witam,
piszę taki mały programik do zliczania drogi myszy na ekranie oraz ilości i miejsce kliknięć na ekranie.
Napisałem taką funkcję:

Kod: Zaznacz cały

void Mysz_Cls::mousePressEvent( QMouseEvent *e )
{
    qDebug ("QMouseEvent");
    if (e->buttons() & (Qt::LeftButton)) {
        qDebug ("left BT\n");
        LewyPrz++;
    }
    if (e->buttons() & (Qt::RightButton)) {
        qDebug ("Right BT\n");
        PrawyPrz++;
        }
}
niestety nie działa ona za dobrze.
gdy klikam na formatkę to poprawnie zlicza kliknięcie prawym klawiszem myszki, ale poza oknem dialogowym to w ogóle nie zauważa kliknięć myszy.

możecie coś poradzić??

PS. Z powodu braku czasu program nie ma pełnej funkcjonalności ale postaram się docelowo o:
-demon zliczający w osobnym wątku programu,
-zliczanie drogi myszy i wyświetlanie tego w zadanych okresach czasu np. droga przebyta w godzinach dnia, albo droga przebyta w dniach tygodnia
-zliczanie kliknięć myszy oraz pozycji tego kliknięcia na ekranie nastepnie można to wyświetlić z ostatniej godziny , dnie i tygodnia
Wrobel-bird
Piegowaty Guziec
Piegowaty Guziec
Posty: 13
Rejestracja: 30 lip 2009, 13:57
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Kontakt:

Odp: [qt4] Jak przechwycić kliknięcie myszy w systemie?

Post autor: Wrobel-bird »

Program (pomysł) spoko, ale jak to uruchomić?
vadwook
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 19 paź 2008, 19:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME

Odp: [qt4] Jak przechwycić kliknięcie myszy w systemie?

Post autor: vadwook »

Hmmm.... Nie wiem czy zrobisz coś takiego przy pomocy Qt. Osobiście nigdy tego nie używałem ale widzę że idea przechwytywanie zdarzeń przez Qt jest podobna do tego z Javy. W taki wypadku to co ty napisałeś będzie działało TYLKO w obrębie okna programu. Jeżeli program ma robić to co napisałeś będziesz być może musiał uzyskać dane od jakiegoś procesu systemowego lub przechwytywać przerwania wywołane w systemie przez myszkę. Oczywiście to co napisałem to tylko czyste hipotetyczne rozważania ale mam nadzieje że naprowadzą Cię na jakieś rozwiązanie.
Tomasz_K
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 11 sie 2009, 09:43
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME

Odp: [qt4] Jak przechwycić kliknięcie myszy w systemie?

Post autor: Tomasz_K »

vadwook pisze:Hmmm.... Nie wiem czy zrobisz coś takiego przy pomocy Qt. Osobiście nigdy tego nie używałem ale widzę że idea przechwytywanie zdarzeń przez Qt jest podobna do tego z Javy. W taki wypadku to co ty napisałeś będzie działało TYLKO w obrębie okna programu. Jeżeli program ma robić to co napisałeś będziesz być może musiał uzyskać dane od jakiegoś procesu systemowego lub przechwytywać przerwania wywołane w systemie przez myszkę. Oczywiście to co napisałem to tylko czyste hipotetyczne rozważania ale mam nadzieje że naprowadzą Cię na jakieś rozwiązanie.
Mam już napisane funkcje do odczytu współrzędnych kursora, programik zczytuje współrzędne z całego ekranu gdzie znajdzie się kursor niezależnie czy jest nad oknem programu czy poza, działa nawet gdy okno programu jest zminimalizowane.

PS. dodałem printscreen-a
Załączniki
mysz.png
(27.39 KiB) Pobrany 31 razy
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości