Witam, na wstępie proszę o "łagodne" traktowanie, ponieważ jestem bardzo początkujący :P
Wczoraj, korzystając z zamieszczonego szkieletu wtyczki przez adrian_007 :) napisałem sobie migacza scroll lockiem, jednak brakuje mu kilku elementów aby był taki jakbym tego chciał :P
1. wpiąłem się w WTW_EVENT_CHATWND_BEFORE_MSG_DISP, i sprawdzam czy wiadomość ma WTW_MESSAGE_FLAG_INCOMING, aby wywołać mruganie no ale niestety wiadomości doczytywane z poprzedniej rozmowy również mają taką flagę i przy otwarciu okna zaczyna mi mrugać lampka :P po otrzymaniu wiadomości bez tej flagi (domyślam się, że wszystkie przychodzące mają INCOMING a reszta OUTGOING) - zatrzymuje mruganie. Czy jest jakiś sposób (flaga) na sprawdzenie czy wiadomość jest doczytywana z archiwum ?
2. jako, że wpinam się w kolejkę istniejącego okna, to gdy te okno nie istnieje (pokazuje nam się powiadomienie w tray'u o nowej/ch wiadomościach) nie wywołuje mi się ten EVENT (albo nie wiem który powinien to być) , przez co mruga tylko jeśli po uruchomieniu komunikatora otworzymy okno - wtedy zakładki się dodają same automatycznie i eventy chodzą normalnie.
3. sprawdzanie w poszukiwaniu wiadomości bez flagi WTW_MESSAGE_FLAG_INCOMING jest trochę upośledzone, ponieważ, aby przestało mi to mrugać muszę odpisać :D istnieje jakiś prosty sposób na sprawdzenie czy okno zostało pokazane na pierwszy plan lub odczytałem zaległe wiadomości ? Na podobnej zasadzie jak gaszone jest podświetlenie w zakładkach. Moja znajomość winapi niestety jest równa zero, a to wszystko jest metodą prób i błędów :D Myślałem, aby sprawdzać kiedy ostatnio naciśnięto klawisz, ale wtyczka sama symuluje naciśnięcie klawisza wiec to raczej odpada.
W dodatku problem będzie z wygaszaczem ekranu - będzie zapewne go wybudzać, ale jak na razie to na własne potrzeby, a ja wyłączam monitor :D
Kod jest dostępny
http://pastebin.com/m156e4976Wersja najnowsza (0.3.1)
Kliknij, aby pobrać x86/x64/source (zip)- poprawiony błąd błędnej konfiguracji aplikacji (?)
- miganie diodą CapsLocka (nie mam w swoim laptopie diody scroll lock'a, a numlock nie reaguje na wywołania) - dodatkowo nie symulujemy naciśnięcia klawisza, a samo miganie
- gdy program wykryje, że poruszyliśmy myszą lub naciśniemy klawisz na klawiaturze automagicznie dioda przestaje migać.
- w paczce jest kompletny kod źródłowy
Nie ma obcenie zbyt dużo czasu na naukę C++ więc ewentualne modyfikacje mogą powstawać bardzo wolno. Jeśli ktoś jest zainteresowany - może przejąć projekt - pod warunkiem, że będzie go rozwijać :)