Hur du använder en anpassad snabbmeny för Internet Explorer för att öppna en bild i en ny flik


Introduktion


Exemplet visar hur du öppnar en bild i en ny flik med hjälp av en anpassad snabbmeny i Internet Explorer. I det här exemplet innehåller följande funktioner:
  • Lägger till poster till snabbmeny för Internet Explorer.
  • Åsidosätter denInternet Explorer standardsnabbmenyn med webbläsarhjälpobjekt.
  • Distribuerar du den anpassade snabbmenyn för Internet Explorer
Kommentarer
  • Internet Explorer 8 kan en ny metod som kallas accelerator eller aktivitet för att lägga till en post i en snabbmeny i Internet Explorer. Den nya metoden som är enklare att använda acceleratorer för att kopiera information från en webbsida till en annan. Lägga till poster i Internet Explorer är standardsnabbmenyn dock fortfarande ett bra tillvägagångssätt till lokalt arbete.
  • Om du åsidosätter Internet Explorer standardsnabbmenyn i Browser Helper Object (BHO) använda ett tillägg program i taget för att åsidosätta IDocHostUIHandler gränssnittet. Om du använder flera tilläggsprogram kan enkelt program i konflikt med varandra. Du kan också skapa en användardefinierad webbläsare om du vill ange IDocHostUIHandler -gränssnittet.
  • Internet Explorer Enhanced Security Configuration (IE ESC)-inställningen är aktiverad som standard på Windows Server 2008 eller Windows Server 2008 R2. Därför kan Internet Explorer kan inte läsa in tillägg. Obs! Du måste manuellt inaktivera IE ESC-inställningen.

Svårighetsgrad

Information om hämtning

Klicka på någon av följande länkar om du vill hämta detta kodexempel:

Teknisk översikt

Om du vill använda en anpassad snabbmeny för Internet Explorer för att öppna en bild i en ny flik gör du följande:
  1. Lägga till poster i snabbmeny för Internet Explorer. Om du vill lägga till en post i snabbmeny för Internet Explorer, måste du lägga till en nyckel under följande registernyckel: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\anteckning standardvärdet för nyckeln är HTML-filens sökväg som hanterar händelsen. Klassen OpenImageMenuExt innehåller två metoder för att lägga till och ta bort poster i registret. Du kan också använda Resource.htm OpenImage.htm HTML-sidan eller i om du vill öppna en bild i en ny flik:
    private const string IEMenuExtRegistryKey =            "Software\\Microsoft\\Internet Explorer\\MenuExt";         public static void RegisterMenuExt()        {             // If the key exists, CreateSubKey will open it.            RegistryKey ieMenuExtKey = Registry.CurrentUser.CreateSubKey(                IEMenuExtRegistryKey + "\\Open image in new tab");              // Get the path of Resource\OpenImage.htm.            FileInfo fileIofo = new FileInfo(Assembly.GetExecutingAssembly().Location);            string path = fileIofo.Directory.FullName + "\\Resource\\OpenImage.htm";             // Set the default value of the key to the path.            ieMenuExtKey.SetValue(string.Empty, path);             // Set the value of Name.            ieMenuExtKey.SetValue("Name", "Open_Image");             // Set the value of Contexts to indicate which contexts your entry should            // appear in the standard context menu by using a bit mask consisting of            // the logical OR of the following values:            // Default 0x1             // Images 0x2             // Controls 0x4             // Tables 0x8             // Text selection 0x10             // Anchor 0x20             ieMenuExtKey.SetValue("Contexts", 0x2);             ieMenuExtKey.Close();        }
  2. Åsidosätta snabbmeny för Internet Explorer med hjälp av webbläsarhjälpobjekt. OpenImageHandler -klass som implementerar gränssnittet IDocHostUIHandler och klassen OpenImageHandler åsidosätter också på standardsnabbmenyn. Klassen OpenImageBHO är ett webbläsartillägg som anger penImageHandler klasser UIHandler klassen för HTML-dokumentet. Mer information om hur du skapar och distribuerar BHO: N finns i CS/VBBrowserHelperObject provet i Microsoft Framework för allt-i-ett-kod.
    InternetExplorer explorer = pDisp as InternetExplorer;             // Set the handler of the document in InternetExplorer.            if (explorer != null)            {                NativeMethods.ICustomDoc customDoc = (NativeMethods.ICustomDoc)explorer.Document;                customDoc.SetUIHandler(openImageDocHostUIHandler);            } 
  3. Distribuera anpassade snabbmenyn med ett projekt i installationsprogrammet. Gör så här om du vill distribuera anpassade snabbmenyn med ett projekt i installationsprogrammet:
    1. Lägga till en installer-klass (kallas även CustomIEContextMenuInstaller i kodexemplet) om du vill definiera anpassade åtgärder i CSCustomIEContextMenu installationsprogrammet för projektet. Installer-klassen härleds från klassen System.Configuration.Install.Installer . I kodexemplet används anpassade åtgärder för att lägga till och ta bort menyalternativ för Internet Explorer-sammanhang i ett register. Kodexemplet registrerar eller Avregistrerar COM-synliga klasser i aktuella hanterade sammansättningen när användaren installerar eller avinstallerar komponenten.
      [RunInstaller(true), ComVisible(false)]    public partial class CustomIEContextMenuInstaller : System.Configuration.Install.Installer    {        public CustomIEContextMenuInstaller()        {            InitializeComponent();        }          public override void Install(System.Collections.IDictionary stateSaver)        {            base.Install(stateSaver);             OpenImageMenuExt.RegisterMenuExt();             RegistrationServices regsrv = new RegistrationServices();            if (!regsrv.RegisterAssembly(this.GetType().Assembly,            AssemblyRegistrationFlags.SetCodeBase))            {                throw new InstallException("Failed To Register for COM");            }        }         public override void Uninstall(System.Collections.IDictionary savedState)        {            base.Uninstall(savedState);             OpenImageMenuExt.UnRegisterMenuExt();             RegistrationServices regsrv = new RegistrationServices();            if (!regsrv.UnregisterAssembly(this.GetType().Assembly))            {                throw new InstallException("Failed To Unregister for COM");            }        }    }
    2. Skapa ett projekt för installationsprogrammet om du vill använda på snabbmenyn i Internet Explorer.
Obs! Mer information om hur du skapar och distribuerar exempelprogrammet finns i filen Readme.txt, som ingår i paketet.

Kategori teknik

Windows base

Språk

Detta kodexempel är tillgänglig i följande programmeringsspråk:
SpråkNamn på projekt
Visual C#CSCustomIEContextMenu
Visual Basic.NETVBCustomIEContextMenu

Referenser

Mer information om hur du lägger till poster till standardsnabbmenyn finns på följande MSDN-webbplats:Mer information om snabbmenyer och tillägg finns på följande MSDN-webbplats:Mer information om webbläsartillägg finns på följande MSDN-webbplats:

Mer information


Vad är en allt-i-ett ramverk för kod?

Allt-i-ett ramverk för kod visar utvecklingstekniker för de flesta Microsoft med hjälp av kodexemplen i olika programmeringsspråk. Varje exempel är noggrant valt består och dokumenterats om du vill visa ett vanligt scenario för koden. Mer information om allt-i-ett ramverk för kod finns på följande Microsoft-webbplats:

Hur du hittar fler allt-i-ett ramverk för kod prover

Om du vill hitta mer allt-i-ett ramverk för kod prover, Sök efter ”kbcodefx” tillsammans med relaterade nyckelord på Microsofts webbplats för support. Eller besök följande Microsoft-webbplats:
Ansvarsfriskrivning för snabb publicering
Microsoft corporation och/eller dess respektive leverantörer gör inga utsagor om lämpligheten, tillförlitlighet eller riktigheten av den information och relaterad grafik som finns häri. Sådan information och relaterad grafik tillhandahålls ”i befintligt skick” utan några garantier. Microsoft eller dess respektive leverantörer frånsäger sig alla garantier och villkor med hänsyn till denna information härmed och relaterad grafik, inklusive alla underförstådda garantier och villkor för säljbarhet, lämplighet för ett särskilt ändamål, workmanlike insats, titel och icke-intrång. Du samtycker uttryckligen att under inga omständigheter skall Microsoft eller dess leverantörer vara ansvariga för några direkta, indirekta, följdskador, oförutsedda skador, speciella, därav följande skador eller skador inklusive, utan begränsning, skadestånd för förlust av användning, data eller vinst, som uppstår ur eller på något sätt i samband med användning av eller oförmåga att använda information och relaterad grafik som finns häri, vare sig baserat på kontrakt, skadeståndsansvar, försummelse, strikt ansvar eller på annat sätt, även om Microsoft eller någon av dess leverantörer har informerats om risken för skador.