Udostępnij przez


Wybieranie metody menu skrótów statycznych lub dynamicznych

Ten temat jest zorganizowany w następujący sposób:

Wybierz metodę czasownika

Zdecydowanie zaleca się zaimplementowanie menu skrótów przy użyciu jednej ze statycznych metod czasowników.

Metody czasowników statycznych

Czasowniki statyczne to najprostsze czasowniki do zaimplementowania, ale nadal zapewniają zaawansowane funkcje. Zawsze wybieraj najprostszą metodę menu skrótów, która spełnia Twoje potrzeby.

Czasownik statyczny Opis
CreateProcess z parametrami wiersza polecenia Jest to najprostszy i najbardziej znany sposób implementowania czasownika statycznego. Proces jest wywoływany przez wywołanie funkcji CreateProcess z wybranymi plikami i wszystkimi opcjonalnymi parametrami przekazanymi jako wiersz polecenia. Spowoduje to otwarcie pliku lub folderu.
Ta metoda ma następujące ograniczenia:
  • Długość linii poleceń jest ograniczona do 2000 znaków, co ogranicza liczbę elementów, które może obsłużyć polecenie.
  • Może być używany tylko z elementami systemu plików.
  • Nie włącza ponownego użycia już uruchomionego procesu.
  • Wymaga zainstalowania pliku wykonywalnego w celu obsługi zlecenia.

DropTarget/IDropTarget Aktywacja czasownikowa oparta na modelu COM oznacza, że obsługuje aktywację in-proc lub out-of-proc. DropTarget/IDropTarget obsługuje również ponowne użycie uruchomionej procedury obsługi, gdy interfejs IDropTarget jest implementowany przez serwer lokalny. Doskonale wyraża również elementy za pośrednictwem przygotowanego do przesłania obiektu danych i zawiera odwołanie do łańcucha miejsc wywołania, co umożliwia interakcję z obiektem wywołującym za pośrednictwem QueryService.
System Windows 7 lub nowszy: IExecuteCommand Najbardziej bezpośrednia metoda implementacji. Ponieważ jest to metoda wywołania oparta na modelu COM (tak jak DropTarget), ten interfejs obsługuje aktywację procesów wewnętrznych i zewnętrznych. Czasownik implementuje IExecuteCommand i IObjectWithSelectioni opcjonalnie IInitializeCommand. Elementy są przekazywane bezpośrednio jako tablica elementów powłoki, a więcej parametrów z wywołania jest dostępnych w implementacji czasownika, w tym punkt wywołania, stan klawiatury itd.
Windows 7 lub nowszy:ExplorerCommand/ IExplorerCommand Umożliwia źródłom danych, które udostępniają polecenia modułu poprzez IExplorerCommandProvider, używanie tych poleceń jako czasowników w menu kontekstowym. Ponieważ ten interfejs obsługuje wyłącznie aktywację z poziomu procesu, zaleca się jego użycie przez źródła danych powłoki, które muszą dzielić się implementacją pomiędzy poleceniami a menu skrótów.

 

Notatka

IExplorerCommand jest hybrydą między czasownikiem statycznym i dynamicznym. IExplorerCommand został zadeklarowany w systemie Windows Vista, ale jego zdolność do implementowania czasownika w menu skrótów jest nowa dla systemu Windows 7.

 

Aby uzyskać więcej informacji na temat IDropTarget i zapytań powłoki dotyczących atrybutów powiązania plików, zobacz Postrzegane typy i rejestracja aplikacji.

Preferowane metody czasowników dynamicznych

Preferowane są następujące metody czasowników dynamicznych:

Typ czasownika Opis
Czasownik statyczny (wymieniony w poprzedniej tabeli) + Zaawansowana składnia zapytań (AQS) Ten wybór zapewnia dynamiczną widoczność czasowników.
System Windows 7 lub nowszy: IExplorerCommand Ten wybór umożliwia wspólną implementację poleceń czasowników i eksploratora, które są wyświetlane w module poleceń w Eksploratorze Windows.
System Windows 7 lub nowszy: IExplorerCommandState + czasownik statyczny Ten wybór zapewnia również dynamiczną widoczność czasowników. Jest to model hybrydowy, w którym prosta procedura obsługi w procesie jest używana do obliczenia, czy dany czasownik statyczny powinien być wyświetlany. Można to zastosować do wszystkich statycznych metod implementacji czasowników w celu osiągnięcia dynamicznego zachowania i zminimalizować narażenie logiki procesu. IExplorerCommandState ma zaletę działania w tle, dzięki czemu unika zawieszania się interfejsu użytkownika. Jest znacznie prostszy niż IContextMenu.

 

Odradza się metody związane z czasownikami dynamicznymi

IContextMenu jest najbardziej zaawansowaną, ale także najbardziej skomplikowaną metodą implementacji. Jest to oparte na obiektach COM w procesie, które działają w wątku wywołującego, którym zazwyczaj jest Eksplorator Windows, ale może być to dowolna aplikacja hostująca elementy. IContextMenu obsługuje widoczność poleceń, kolejność i rysowanie niestandardowe. Niektóre z tych cech zostały dodane do statycznych cech czasownika, takich jak ikona, która ma być skojarzona z poleceniem, oraz IExplorerCommand do zarządzania widocznością.

Jeśli musisz rozszerzyć menu skrótów dla typu pliku, rejestrując czasownik dynamiczny dla typu pliku, postępuj zgodnie z instrukcjami podanymi w Dostosowywanie menu skrótów przy użyciu czasowników dynamicznych.

Rozszerzanie menu skrótów

Po wybraniu metody czasownika można rozszerzyć menu skrótów dla typu pliku, rejestrując czasownik statyczny dla typu pliku. Aby uzyskać więcej informacji, zobacz Tworzenie procedur obsługi menu kontekstowego.

Obsługa metod czasowników według systemu operacyjnego

Obsługa metod wywołania czasowników według systemu operacyjnego znajduje się w poniższej tabeli.

Metoda czasownika Windows XP Windows Vista Windows 7 lub nowszy
CreateProcess X X X
DDE X X X
DropTarget X X X
WykonajPolecenie X X
ExplorerCommand X
ExplorerCommandState X

 

Najlepsze praktyki dla obsługi menu kontekstowego i czasowników wielokrotnego wyboru

tworzenie programów obsługi menu skrótów

dostosowywanie menu skrótów przy użyciu czasowników dynamicznych

Menu kontekstowe (skrótów) i obsługiwane przez nie programy

menu skrótów

czasowniki i skojarzenia plików