T: Menu kontekstowe, rozszerzanie powłoki.
Menu kontekstowe stanowi lista poleceń pojawiająca się po kliknięciu prawego przycisku myszki. Zawartość wyświetlanego okienka uzależniona jest od obszaru, w obrębie którego znajduje się kursor w momencie kliknięcia. Na listę dostępnych poleceń wpływa również oprogramowanie zainstalowane w systemie.
Menu kontekstowe opisane jest w następujących kluczach:
Dla folderów/plików:
HKEY_CLASSES_ROOT\Folder\Shell
HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers
HKEY_CLASSES_ROOT\Directory\Shell
HKEY_CLASSES_ROOT\Directory\ShellEx\ContextMenuHandlers
HKEY_CLASSES_ROOT\AllFilesystemObjects\shell
HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers
HKEY_CLASSES_ROOT\*\shellex (dla plików niezdefiniowanych)
HKEY_CLASSES_ROOT \*\shellex\ContextMenuHandlers
HKCR\AllFilesystemObjects\shellex\ContextMenuHandlers
Dla dysków:
HKEY_CLASSES_ROOT\Drive\Shell
HKEY_CLASSES_ROOT\Drive\ShellEx\ContextMenuHandlers
HKEY_CLASSES_ROOT\Folder\Shell
HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers
Czyszczenie kosza w menu kontekstowym:
Na początek spróbujmy uprościć "czyszczenie" Kosza - w ten mianowicie sposób, że polecenie Opróżnij Kosz będzie dostępne nie tylko po kliknięciu ikonki "śmietnika". Tę komendę wydamy także po wskazaniu ikony dowolnego folderu albo napędu. W tym celu musimy dokonać niewielkich zmian w Rejestrze. Przygotujmy plik tekstowy o następującej zawartości:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\directory\shellex\ContextMenuHandlers\{645FF040-5081-101B-9F08-00AA002F954E}]
[HKEY_CLASSES_ROOT\Drive\shellex\ContextMenuHandlers\{645FF040-5081-101B-9F08-00AA002F954E}]
Dzięki pierwszemu wpisowi dodamy polecenie Opróżnij Kosz do menu kontekstowego związanego z folderami; drugi wiersz odpowiada za obsługę dysków. Oczywiście nie musimy wprowadzać do Rejestru dwóch zmian - jeżeli zdecydujemy, że wystarczy nam możliwość opróżniania Kosza tylko z poziomu folderu lub dysku, to umieszczamy w zbiorze jedną, odpowiednią linię.
Zapisujemy plik pod nazwą Kosz.reg, klikamy go prawym przyciskiem myszy i wybieramy opcję Scalaj (Merge). Odpowiednie informacje zostaną dodane do Rejestru, a po restarcie komputera będziemy mieli dostęp do nowej opcji w menu kontekstowym.
Wiersz poleceń
Teraz zabierzemy się za systemowy Wiersz polecenia, wywoływany komendą Start | Uruchom | cmd. Tworzymy kolejny plik z rozszerzeniem REG. Powinny się w nim znaleźć wpisy:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\CmdHere]
@="Uruchom w Wierszu polecenia"
[HKEY_CLASSES_ROOT\Folder\shell\CmdHere\command]
@="cmd.exe /k pushd %L"
Po dwukrotnym kliknięciu pliku wystarczy zgodzić się na wprowadzenie w systemie odpowiednich zmian. W menu kontekstowym zobaczymy nową komendę: Uruchom w Wierszu polecenia.
Skopiuj, przenieś
Na koniec dodamy do menu kontekstowego polecenia Kopiuj do i Przenieś do. Uruchamiamy Edytor Rejestru, rozwijamy gałąź
HKEY_CLASSES_ ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers
i tworzymy klucze Copy To i Move To. Zmieniamy ich wartości na - odpowiednio -
{C2FBB630-2971-11D1-A18C-00C04FD75D13} oraz
{C2FBB631-2971-11D1-A18C-00C04FD75D13}.
Dwie kolejne opcje w menu kontekstowym będą dostępne po zrestartowaniu peceta.
Mam tylko jeszcze jedną uwagę: przedstawione wyżej patenty działają w Windows 2000 i XP, ale zdecydowanie odradzam stosowania ich w Windows 98! Skończy się to bowiem koniecznością przeinstalowania Okien.
Plik z listą zawartości katalogu tworzony z menu kontekstowego:
W rejestrze dodamy opcje do menu kontekstowego dla dysków lub katalogów. Oto czynności, które należy w tym celu wykonać:
regedit.exe => HKCR\Directory\Shell => Nowy klucz “Lista zawartości katalogu” => w nim tworzymy kolejny klucz “command” => i nadajemy wartości domyślnej następujący ciąg znaków:
cmd.exe /c dir %1 /L /B /O:N > lista_plikow.txt
cmd.exe /c dir %1 /L /B /O:N > %1.txt
Wywoływanie opcji panelu sterowania:
c:\Windows\control.exe {plik.cpl},{nazwa aplikacji w Panelu sterowania},{nr karty - od lewej i od 0}
c:\Windows\control.exe sysdm.cpl,System,1
c:\Windows\control.exe desk.cpl,Ekran,3
Ciekawostka:
Jeżeli chcesz pozbyć się pozycji z menu kontekstowego z listy Nowy to w kluczu HKEY_CLASSES_ROOT dla danego typu plików należy usunąć podklucze ShellNew.
Zadanie:
Utwórz nową pozycję w menu kontekstowym dla katalogów wywołujące aplikację wyświetlającą zadania systemowe (taskmgr.exe).
Utwórz nową pozycję w menu kontekstowym dla dysków, które wyświetli informację z analizy defragmentatora oraz wykona skanowanie systemu plików.
Przykładowy plik reg:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\Lista plików\command]
@="cmd.exe /c dir %1 /L /B /O:N > lista_plikow.txt"
Przykładowy plik reg:
REGEDIT4
[HKEY_CLASSES_ROOT\Folder\shellex\PropertySheetHandlers]
[HKEY_CLASSES_ROOT\Folder\shellex\PropertySheetHandlers\MSSharing]
@="{3EFC0B01-F4AA-101A-8932-08002B327C2D}"