Verb och filassociationer
När en användare högerklickar på ett Shell-objekt, till exempel en fil, visar Gränssnittet en genvägsmeny (kontext). Den här menyn innehåller en lista över kommandon som användaren kan välja för att utföra olika åtgärder på objektet. Dessa kommandon kallas även snabbmenyobjekt eller verb. Snabbmenyer kan anpassas.
Det här avsnittet är ordnat på följande sätt:
- Introduktion till snabbmenyer för filsystemobjekt
- snabbmenyverb
- Stream-objekt som inte är filsystem och OpenSearch-resultat.
- registrera ett program för att hantera godtyckliga filtyper
- ytterligare resurser
- Relaterade ämnen
Introduktion till snabbmenyer för filsystemobjekt
Eftersom snabbmenyer ofta används för filhantering tillhandahåller Shell en uppsättning standardkommandon, till exempel Klipp ut och Kopiera, som visas på snabbmenyn för alla filsystemobjekt, till exempel en fil eller en mapp.
I följande exempel visas en standardgenvägsmeny som visas genom att högerklicka på MyFile.xyz-ms.
Anledningen till att en standardgenvägsmeny visas för MyFile.xyz-ms beror på att .xyz-ms inte är medlem i en registrerad filtyp. Däremot är .txt en registrerad filtyp. Om du högerklickar på en .txt fil visas en snabbmeny med ytterligare tre kommandon i det övre avsnittet: Skriv ut, Redigera och Öppna med.
Om du vill utöka snabbmenyn för en filtyp måste du skapa en registerpost för varje kommando. En mer avancerad metod är att implementera en snabbmenyhanterare (verb) som gör att du kan utöka snabbmenyn för en filtyp på fil-för-fil-basis. Mer information finns i Skapa snabbmenyhanterareoch snabbmenyreferens.
Lägga till kommandon i en snabbmeny
En snabbmenyhanterare är en filtypshanterare som lägger till kommandon i en befintlig snabbmeny. Snabbmenyhanterare är associerade med en filtyp och anropas när en snabbmeny visas för en medlem i klassen. Gränssnittet kontrollerar registret för att se om filtypen är associerad med några snabbmenyhanterare. Om så är fallet frågar Shell hanterarna efter ytterligare snabbmenyobjekt.
Snabbmenyverb
Varje kommando på snabbmenyn identifieras i registret med dess verb. Dessa verb är desamma som de som används av ShellExecuteEx när program startas programmatiskt.
Ett verb är en enkel textsträng som används av gränssnittet för att identifiera det associerade kommandot. Varje verb motsvarar kommandosträngen som används för att starta kommandot i ett konsolfönster eller en batchfil (.bat).
Till exempel startar det öppna verbet normalt ett program för att öppna en fil. Kommandosträngen ser vanligtvis ut så här:
"My Program.exe" "%1"
Om något element i kommandosträngen innehåller eller kan innehålla blanksteg måste det omges av citattecken. Om elementet annars innehåller ett blanksteg parsas det inte korrekt. Till exempel startar "My Program.exe" programmet korrekt. Om du använder Min Program.exe utan citattecken försöker systemet starta My med Program.exe som sitt första kommandoradsargument. Du bör alltid använda citattecken med argument som "%1" som expanderas till strängar av gränssnittet, eftersom du inte kan vara säker på att strängen inte kommer att innehålla något blanksteg.
Verb kan också ha ett visningsnamn associerat med dem, som visas på snabbmenyn i stället för själva verbsträngen. Visningssträngen för openas är till exempel Öppna med. Precis som med vanliga menysträngar, inklusive ett et-tecken i visningssträngen, kan du välja tangentbord för kommandot.
Strömma icke-filsystemobjekt och OpenSearch-resultat.
I Windows 7 och senare finns stöd för anslutning av externa källor till Windows-klienten via protokollet OpenSearch. På så sätt kan användare söka i ett fjärrdatalager och visa resultat från Utforskaren i Windows. OpenSearch v1.1-standarden definierar enkla filformat som kan användas för att beskriva hur en klient ska fråga webbtjänsten om datalagret och hur tjänsten ska returnera resultat som ska återges av klienten.
Du kan behöva strömma icke-filsystemobjekt för att undvika behovet av att ladda ned objekt vid OpenSearch- resultat. Funktionen federerad sökning gör det möjligt att söka efter objekt från systemplatser som inte är filsystem som stöder OpenSearch, till exempel SharePoint och andra webbplatser som stöds av webbtjänster. När du anropar verb på dessa objekt laddar systemet ned en tillfällig version av objektet och skickar det till verbimplementeringen. Verb-implementerare uppmuntras att undvika behovet av att ladda ned filen genom att registrera den uppsättning URL-scheman som verbet stöder för att strömma objekten. Verb gör det med hjälp av registernyckeln SupportedProtocols.
Registrera ett program för att hantera godtyckliga filtyper
Genom att definiera snabbmenyobjekt för en viss filtyp kan du ange hur det associerade programmet öppnar en medlem av filtypen. Program kan dock också registrera en separat standardprocedur som ska användas när en användare försöker använda programmet för att öppna en filtyp som inte är associerad med programmet. Du registrerar standardproceduren på ungefär samma sätt som du registrerar snabbmenyobjekt. Mer detaljerad information om hur du definierar snabbmenyobjekt finns i Skapa snabbmenyhanterare.
Standardproceduren har två grundläggande syften. Ett är att ange hur programmet ska anropas för att öppna en godtycklig filtyp. Du kan till exempel använda en kommandoradsflagga för att ange att en okänd filtyp öppnas. Det andra syftet är att definiera de olika egenskaperna för en filtyp, till exempel snabbmenyobjekten och ikonen. Om en användare associerar ditt program med ytterligare en filtyp har den klassen dessa egenskaper. Om den ytterligare filtypen tidigare var associerad med ett annat program ersätter dessa egenskaper originalen.
Registrera standardproceduren genom att placera samma registernycklar som du skapade för programmets ProgID under programmets undernyckel för HKEY_CLASSES_ROOT\Applications. Du kan också inkludera ett FriendlyAppName- värde för att ge systemet ett eget namn för ditt program. Programmets eget namn kan också extraheras från den körbara filen, men bara om värdet FriendlyAppName saknas.
Följande exempelregistreringspost visar en standardprocedur för MyProgram.exe som definierar ett eget namn och flera snabbmenyobjekt. Kommandosträngarna innehåller flaggan /a för att meddela programmet att det öppnar en godtycklig filtyp. Om du inkluderar en DefaultIcon- undernyckel bör du använda en allmän ikon.
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"
Ytterligare resurser
- Mer bakgrund finns i Introduktion till filassociationer.
- Konceptuell information om hur du utökar gränssnittet med filtypshanterare finns i Skapa gränssnittstilläggshanterare.
Relaterade ämnen