Windows Shell

Zadanie 1 Ikona w pasku zadań

Utwórz aplikację wyświetlającą umieszczającą ikonę w pasku zadań. W momencie startu aplikacji okno główne jest niewidoczne a w pasku zadań (system tray) pojawia się ikona i ewentualnie komunikat w postaci tzw. dymka. Kliknięcie LBM powoduje pokazanie okna głównego aplikacji. Minimalizacja lub próba zamknięcia okna powodują ukrycie okna. Kliknięcie RBM w ikonkę na pasku zadań wyświetla menu kontekstowe umożliwiające przywrócić widoczność okna głównego lub zamknąć aplikację.

utwórz własną ikonę o dodaj ją do zasobów aplikacji,

przygotuj strukturę NOTIFYICONDATA. Podaj tu wcześniej wczytaną ikonę. Dodaj tekst wyświetlany po najechaniu kursorem na ikonę (tip).

umieść ikonę w pasku zadań za pomocą funkcji Shell_NotifyIcon. Ikona powinna być automatycznie usuwana w momencie zamknięcia aplikacji.

dodaj własny komunikat (np. WM_USER_SHELLICON) obsługiwany podczas kliknięcia ikony. Obsłuż komunikaty związane z kliknięciem lewego i prawego klawisza myszy na ikonie zgodnie z treścią zadania.

Kliknięcie LBM powoduje pokazanie się okna głownego (które domyślnie jest ukryte). Minimalizacja lub próba zamknięcia okna głównego powoduje ponowne jego ukrycie. Obsłuż w tym celu komunikat okna WM_SYSCOMMAND,

Kliknięcie RBM otwiera menu kontekstowe pozwalające zamknąć aplikację. Do tworzenia menu można wykorzystać funkcje CreatePopupMenu oraz AppendMenu. Wyświetlenie menu kontekstowego odbywa się za pomocą funkcji TrackPopupMenu. Pozycję kursora uzyskujemy z GetCursorPos. Niezbędne jest też ustawienie okna na pierwszym planie SetForegroundWindow.

Dodaj wyświetlanie komunikatu balonowego w momencie startu aplikacji.

Zadanie 2 - Zestaw podręcznych narzędzi

Do menu kontekstowego z poprzedniego zadania dodaj podmenu zawierające zestaw narzędzi i skrótów do aplikacji. Przykładowe akcje udostępniane przez menu:

wyświetlenie okna z informacjami o systemie operacyjnym (About),

uruchomienie przeglądarki internetowej, np. Forefox,

otworzenie katalogu użytkownika w Eksploratorze,

uruchomienie wyszukiwania plików w katalogu domowym użytkownika,

Wykorzystaj funkcję ShellExecute do otwierania aplikacji i plików oraz ShellAbout do wyświetlenia informacji o systemie. Folder użytkownika uzyskaj korzystając z funkcji SHGetKnownFolderPath (plik nagłówkowy Shlobj.h).