Werkwoorden en bestandskoppelingen
Wanneer een gebruiker met de rechtermuisknop op een Shell-object klikt, zoals een bestand, geeft de Shell een snelmenu (contextmenu) weer. Dit menu bevat een lijst met opdrachten die de gebruiker kan selecteren om verschillende acties op het item uit te voeren. Deze opdrachten worden ook wel snelmenu-items of werkwoorden genoemd. Snelmenu's kunnen worden aangepast.
Dit onderwerp is als volgt ingedeeld:
- Inleiding tot snelmenu's voor bestandssysteemobjecten
- snelmenuopdrachten
- stream niet-bestandssysteemitems en OpenSearch-resultaten.
- een toepassing registreren voor het afhandelen van willekeurige bestandstypen
- Aanvullende resources
- Verwante onderwerpen
Inleiding tot snelmenu's voor bestandssysteemobjecten
Omdat snelmenu's vaak worden gebruikt voor bestandsbeheer, biedt de Shell een set standaardopdrachten, zoals Knippen en Kopiëren, die worden weergegeven in het snelmenu voor elk bestandssysteemobject, zoals een bestand of map.
In het volgende voorbeeld ziet u een standaardsnelmenu dat wordt weergegeven door met de rechtermuisknop op MyFile.xyz-mste klikken.
De reden dat er een standaardsnelmenu wordt weergegeven voor MyFile.xyz-ms is te wijten aan het feit dat .xyz-ms geen lid is van een geregistreerd bestandstype. Daarentegen is .txt een geregistreerd bestandstype. Als u met de rechtermuisknop op een .txt bestand klikt, ziet u een snelmenu met drie extra opdrachten in het bovenste gedeelte: Afdrukken, Bewerken en Openen met.
Als u het snelmenu voor een bestandstype wilt uitbreiden, moet u voor elke opdracht een registervermelding maken. Een geavanceerdere benadering is het implementeren van een handler voor een snelmenu (werkwoord), waarmee u het snelmenu voor een bestandstype kunt uitbreiden op basis van een bestand per bestand. Zie Contextmenu-handlers makenen contextmenureferentiesvoor meer informatie.
Opdrachten toevoegen aan een snelmenu
Een snelmenuhandler is een handler voor bestandstypen waarmee opdrachten worden toegevoegd aan een bestaand snelmenu. Snelmenuhandlers zijn gekoppeld aan een bestandstype en worden aangeroepen wanneer een snelmenu wordt weergegeven voor een lid van de klasse. De Shell controleert het register om te zien of het bestandstype is gekoppeld aan eventuele handlers voor snelmenu's. Als dat zo is, voert Shell een query uit op de handlers voor aanvullende snelmenu-items.
Snelmenuopdrachten
Elke opdracht in het snelmenu wordt in het register aangeduid met het werkwoord. Deze werkwoorden zijn hetzelfde als die worden gebruikt door ShellExecuteEx bij het programmatisch starten van toepassingen.
Een werkwoord is een eenvoudige tekenreeks die door de Shell wordt gebruikt om de bijbehorende opdracht te identificeren. Elke bewerking komt overeen met de opdrachtreeks die wordt gebruikt om de opdracht in een consolevenster of batchbestand (.bat) te starten.
Met het geopende werkwoord wordt bijvoorbeeld normaal gesproken een programma gestart om een bestand te openen. De opdrachtreeks ziet er doorgaans als volgt uit:
"My Program.exe" "%1"
Als een element van de opdrachtreeks spaties bevat of bevat, moet het tussen aanhalingstekens staan. Als het element anders een spatie bevat, wordt het niet correct geparseerd. Bijvoorbeeld 'Mijn Program.exe' de toepassing correct start. Als u Mijn Program.exe zonder aanhalingstekens gebruikt, probeert het systeem Mijn te starten met Program.exe als het eerste opdrachtregelargument. Gebruik altijd aanhalingstekens met argumenten zoals "%1" die zijn uitgebreid naar tekenreeksen door de Shell, omdat u niet zeker weet dat de tekenreeks geen spatie bevat.
Aan werkwoorden kan ook een weergavenaam zijn gekoppeld, die wordt weergegeven in het snelmenu in plaats van de werkwoordreeks zelf. De weergavetekenreeks voor openas is bijvoorbeeld Openen met. Net als normale menutekenreeksen, met inbegrip van een ampersand-teken in de weergavetekenreeks, kan de toetsenbordselectie van de opdracht worden toegestaan.
Niet-bestandssysteemitems en OpenSearch-resultaten streamen.
In Windows 7 en hoger is er ondersteuning voor de verbinding van externe bronnen met de Windows-client via het protocol OpenSearch. Hiermee kunnen gebruikers zoeken in een extern gegevensarchief en resultaten bekijken vanuit Windows Verkenner. De OpenSearch v1.1-standaard definieert eenvoudige bestandsindelingen die kunnen worden gebruikt om te beschrijven hoe een client een query moet uitvoeren op de webservice voor het gegevensarchief en hoe de service resultaten moet retourneren die door de client moeten worden weergegeven.
Mogelijk moet u niet-bestandssysteemitems streamen om te voorkomen dat u items moet downloaden in het geval van OpenSearch resultaten. Met de federatieve zoekfunctie kunt u zoeken naar items van niet-bestandssysteemlocaties die ondersteuning bieden voor OpenSearch, zoals SharePoint en andere websites die door webservices worden ondersteund, bijvoorbeeld. Wanneer u werkwoorden op deze items aanroept, downloadt het systeem een tijdelijke versie van het item en geeft dit door aan de implementatie van de werkwoorden. Werkwoord implementeerfuncties worden aangemoedigd om te voorkomen dat u het bestand hoeft te downloaden door de set URL-schema's te registreren die door het werkwoord worden ondersteund om de items te streamen. Werkwoorden doen dit met behulp van de SupportedProtocols registersleutel.
Een toepassing registreren voor het afhandelen van willekeurige bestandstypen
Als u snelmenu-items voor een bepaald bestandstype definieert, kunt u opgeven hoe de bijbehorende toepassing een lid van het bestandstype opent. Toepassingen kunnen echter ook een afzonderlijke standaardprocedure registreren die moet worden gebruikt wanneer een gebruiker probeert de toepassing te gebruiken om een bestandstype te openen dat niet aan de toepassing is gekoppeld. U registreert de standaardprocedure op ongeveer dezelfde manier als het registreren van snelmenu-items. Zie Contextmenu-handlers makenvoor meer informatie over het definiëren van snelmenu-items.
De standaardprocedure heeft twee basisdoeleinden. U kunt opgeven hoe uw toepassing moet worden aangeroepen om een willekeurig bestandstype te openen. U kunt bijvoorbeeld een opdrachtregelvlag gebruiken om aan te geven dat een onbekend bestandstype wordt geopend. Het andere doel is om de verschillende kenmerken van een bestandstype te definiëren, zoals de snelmenu-items en het pictogram. Als een gebruiker uw toepassing koppelt aan een extra bestandstype, heeft die klasse deze kenmerken. Als het extra bestandstype eerder aan een andere toepassing is gekoppeld, worden de oorspronkelijke kenmerken vervangen.
Als u de standaardprocedure wilt registreren, plaatst u dezelfde registersleutels die u hebt gemaakt voor de ProgID van uw toepassing onder de subsleutel van de toepassing van HKEY_CLASSES_ROOT\Applications. U kunt ook een FriendlyAppName--waarde opnemen om het systeem een beschrijvende naam voor uw toepassing te geven. De beschrijvende naam van de toepassing kan ook worden geëxtraheerd uit het uitvoerbare bestand, maar alleen als de waarde FriendlyAppName afwezig is.
De volgende voorbeeldregistervermelding illustreert een standaardprocedure voor MyProgram.exe waarmee een beschrijvende naam en verschillende snelmenu-items worden gedefinieerd. De opdrachtreeksen bevatten de vlag /a om de toepassing op de hoogte te stellen dat er een willekeurig bestandstype wordt geopend. Als u een DefaultIcon subsleutel opneemt, moet u een algemeen pictogram gebruiken.
HKEY_CLASSES_ROOT
MyProgram.exe
shell
open
command
(Default) = C:\MyDir\MyProgram.exe /a "%1"
print
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1"
printto
command
(Default) = C:\MyDir\MyProgram.exe /a /p "%1" "%2"
Aanvullende informatiebronnen
- Zie Inleiding tot bestandskoppelingenvoor meer achtergrondinformatie.
- Zie Shell-extensiehandlers makenvoor conceptuele informatie over het uitbreiden van de Shell met handlers voor bestandstypen.
Verwante onderwerpen
-
Aanbevolen procedures voor snelmenuhandlers en meerdere selectiewerkwoorden
-
een statisch of dynamisch werkwoord kiezen voor het snelmenu