Warsztat: Jak wrzucić naszą aplikację do System Traya (zasobnika systemowego przy zegarze)?

SysTray.zip
Autor: Krzysztof Pozorek
Baza w formacie MsAccess 97
86kB, 19-10-2001

Opis problemu:

Obserwujemy jak niektóre programy umieszczają swoją ikonkę w System Tray-u, czyli w zasobniku systemowym obok zegara. To wygodne rozwiązanie, zwłaszcza w przypadku programów rezydentnych, których zadaniem jest wykonywanie jakichś operacji w tle. Czy naszą aplikacje napisaną w Accessie też możemy umieścić w System Tray-u?

Rozwiązanie:

Program SysTray jest kompletną aplikacją, która umieszczona w zasobniku systemowym bada aktywność monitorowanej bazy accessowej.

A oto szczegóły:

Bajty &H603 i &H604 znajdujące się w nagłówku bazy accessowej (MsAcces 97) zawierają informację o ilości zapisów dokonanych w bazie przez użytkownika. W przypadku pracy sieciowej każda kolejna para bajtów zawiera informację o ilości zapisów dokonanych przez kolejnego użytkowników. Program SysTray umieszczony w zasobniku systemowym odczytuje te bajty co jakiś czas, mierząc w ten sposób swoiście rozumianą aktywność monitorowanej bazy.

Trochę inaczej niż inne przykłady umieszczone na tej stronie, niniejszy program jest kompletną aplikacją i z tego powodu składa się z kilku modułów, które same w sobie móglyby stanowić oddzielny temat. Może to utrudniać analizę pojedynczego zagadnienia, dlatego umieściłem znaczną ilość komentarza bezpośrednio w kodzie programu oraz starałem się rozdzielać tematy do oddzielnych bloków programu.

Dla porządku wymienię zagadnienia, które znalazły swoją ilustracje w programie SysTray.mdb:

  1. Umieszczenie ikonki naszego programu w zasobniku systemowym
  2. Przypisanie do ikonki w zasobniku własnego menu
  3. Wykorzystanie bajtów aktywności bazy (bajty &H603 i &H604, a w przypadku jednoczesnej pracy wielu użytkowników - także bajty następne).
  4. Prosta realizacja Dag&Drop na formularzu
  5. Okno dialogowe 'Otwórz plik'
  6. Realizacja wykresu na formularzu ciągłym
  7. Porównywanie w kwerendzie wartości z rekordu bieżącego i poprzedniego
  8. Ukrywanie głównego okna Accessa i wyświetlanie wyłącznie formularzy.

Program po uruchomieniu domyślnie chce monitorować bazę bieżącą. Zaleca się zmienić ścieżkę na jakąś bazę sieciową, na której pracuje wielu użytkowników. Do takiego środowiska sieciowego dostosowany jest ten program.