Ślad: • ppz2 • 06_strings • pp1 • shell

Windows Shell

Writing /home/grochu/public_html/wiki/data/cache/2/2fbd0d398db9309c0270a66cffe5e20d.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/grochu/public_html/wiki/data/cache/2/2fbd0d398db9309c0270a66cffe5e20d.metadata failed
Writing /home/grochu/public_html/wiki/data/cache/0/0aecd8a88c64b13ce195ddd4cc45b8f9.i failed
Writing /home/grochu/public_html/wiki/data/cache/0/0aecd8a88c64b13ce195ddd4cc45b8f9.metadata failed
Writing /home/grochu/public_html/wiki/data/cache/2/2fbd0d398db9309c0270a66cffe5e20d.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/grochu/public_html/wiki/data/cache/2/266c355629ead72ab78bc18c96100ee0.xhtml failed

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).